django проверяет уникальность отношений «многие ко многим» - PullRequest
1 голос
/ 04 мая 2011

У меня есть следующее model.py:

class FinancialProduct(models.Model):
    active = models.BooleanField(default=True)
    name = models.CharField(max_length=20)
    abbreviation = models.CharField(max_length=3)
    table_name = models.CharField(max_length=5, choices=FP_TABLE_CHOICES)
    businesses = models.ManyToManyField(Business)

и следующие forms.py:

class FinancialProductForm(ModelForm):
    business = ModelMultipleChoiceField(widget=CheckboxSelectMultiple(),required=True)

    class Meta:
        model = FinancialProduct

    def is_unique(self,latestFP):
        if (self.cleaned_data['active'] == latestFP.active and
            self.cleaned_data['name'].capitalize() == latestFP.name and
            self.cleaned_data['acronym'].upper() == latestFP.acronym and
            self.cleaned_data['table_name'] == latestFP.Table_name and
            self.cleaned_data['business'] == latestFP.business):
            return False
        else:
            return True

Функция is_unique() вызывается перед сохранением, но мне интересно, как я могу проверить, изменилось ли отношение «многие ко многим» для business. Есть идеи?

EDIT

Форма также выдает ошибку при отправке из-за бизнес м2. Нужна ли дополнительная обработка перед сохранением?

1 Ответ

1 голос
/ 05 мая 2011

business должно быть businesses:)

...