Така че основно се опитвам да пренебрегна спасяванетометод на даден модел, за да се укаже дали е определено определено ненужно поле, което е поле 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.