J'ai un modèle de révision comme celui défini ci-dessous (j'ai supprimé un tas de champs dans REVIEW_FIELDS). Je veux trouver la moyenne d'un sous-ensemble des attributs et remplir un ModelForm avec les informations calculées.Créer une instance qui représente la moyenne de plusieurs instances
REVIEW_FIELDS = ['noise']
class Review(models.Model):
notes = models.TextField(null=True, blank=True)
CHOICES = ((1, u'Quiet'), (2, u'Kinda Quiet'), (3, u'Loud'))
noise = models.models.IntegerField('Noise Level', blank-True, null=True, choices=CHOICES)
class ReviewForm(ModelForm):
class Meta:
model = Review
fields = REVIEW_FIELDS
Je peux facilement ajouter plus de champs au modèle, puis les ajouter à la liste REVIEW_FIELDS. Ensuite, je peux facilement itérer sur eux en javascript, etc. À mon avis, je veux calculer la moyenne d'un tas de champs entiers et remplir un ReviewForm avec les valeurs d'attribut. Comment puis-je faire quelque chose comme ça? Comment puis-je créer un ReviewForm avec les valeurs moyennes sans coder en dur les valeurs d'attribut? J'aimerais pouvoir ajouter le champ, ajouter la valeur à la liste et l'ajouter automatiquement à l'ensemble des statistiques calculées.
Si je fais quelque chose de fondamentalement faux, s'il vous plaît faites le moi savoir. Je suis relativement nouveau à django, donc je pourrais réinventer une fonctionnalité qui existe déjà.
C'est la bonne façon de le faire: http://docs.djangoproject.com/fr/1.2/ref/forms/api/#bound-and-unbound-forms – ars