/ / django: как да разберете дали моделът е създаден с поле m2m не - None - django, django-models

django: как да разбера дали моделът е създаден с поле m2m не е None - django, django-models

Така че основно се опитвам да пренебрегна спасяванетометод на даден модел, за да се укаже дали е определено определено ненужно поле, което е поле m2m. Ако е така, след това актуализирайте едно от своето булево поле на True. В момента имам нещо подобно:

class Flag(models.Model):
name = models.CharField(max_length=300)
def __str__(self):
return self.name

class Model(models.Model):
BooleanField = models.BooleanField(default = False)
m2mField = models.ManyToManyField(Flag)


def save(self, *args, **kwargs):
super(Model, self).save(*args, **kwargs)
if Model.objects.filter(id = self.id, m2mField = None).exists():
Model.objects.filter(id = self.id).update(BooleanField = True)

И това сега не работи за мен. Не ме интересува какво е в полето m2m, просто се опитва да разбере дали това поле е посочено от потребителя при създаването на този инстанция.

TIA

Редактиране: Обновявам се с по-реалистично определение.

Отговори:

0 за отговор № 1

Може да опитате да проверите дали броят m2mField е по-голям от 0, както е така:

class Model(models.Model):
BooleanField = models.BooleanField(default = False)
m2mField = models.ManyToManyField(Flag, blank=True)


def save(self, *args, **kwargs):
self.BooleanField = True if self.pk is not None and self.m2mField.count() > 0 else False
super(Model, self).save(*args, **kwargs)

Вероятно би било добра идея да минете blank=True аргумент към m2mField.