django проверяет связь «многие ко многим» на уникальность

#django #django-forms #many-to-many

#django #django-forms #»многие ко многим»

Вопрос:

У меня есть следующее 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 . Есть идеи?

Редактировать

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

Комментарии:

1. Что вы подразумеваете под «отношением «многие ко многим» изменилось для бизнеса»?

2. ваше право. О чем я говорю?!? это должно быть businesses (ARRRR!!! опечатки). Если вы укажете это в качестве ответа, я поставлю ему галочку.

Ответ №1:

business должно быть businesses 🙂