J'ai une relation M2M récursive avec une classe d'indicateur. Un indicateur est un int, ou une valeur calculée à partir de 2 indicateurs:Pourquoi cette relation many-to-many change-t-elle sans que je le demande, en utilisant l'ORM de Django?
class Indicator(models.Model):
params = models.ManyToManyField('self',
verbose_name=__(u'parameters'),
related_name='params_of',
blank=True, null=True)
type = models.CharField(max_length=64, verbose_name=__(u'type'))
def get_value(self, record):
# etc
Selon le type, get_value ne fait pas les mêmes choses. Il peut simplement renvoyer la valeur numérique ou calculer une valeur à partir de la valeur numérique de chaque paramètre à partir de l'attribut params
. Comme vous pouvez le voir params
est une relation récursive m2m.
Maintenant, mon problème est que, je les indicateurs follwoing:
- hommes
- femmes
- pop totale ratio
- hommes
Si j'ajoute men
et women
comme paramètres de total pop
, tout va bien, et je calcule dynamiquement mon pop total até. Mais si je puis ajouter men
et total pop
comme paramètres à men ratio
, alors total pop
obtiennent automatiquement men ratio
en tant que paramètre. Ça casse tout.
Pourquoi est-ce? Comment puis-je l'éviter?
Merci homme, qui aide beaucoup. –