2
У меня есть проблемы с помощью метода Add() ниже ...Django модели - Проблема с использованием ManyToManyField добавить метод()
class JobRecord(models.Model):
"""JobRecord model"""
project = models.ForeignKey(Project)
date = models.DateField()
supervisor = models.ForeignKey(User, related_name='supervisor_set')
operators = models.ManyToManyField(User, related_name='operators_set', help_text='Include the supervisor as an operator here also.')
vehicles = models.ManyToManyField(Vehicle, blank=True, null=True)
def __unicode__(self):
return u"%s - %s" % (self.project.name, self.date.strftime('%b %d'))
def save(self, **kwargs):
super(JobRecord, self).save(**kwargs)
if not self.operators.filter(pk=self.supervisor.pk):
self.operators.add(self.supervisor)
print self.operators.values()
Как ни странно, print self.operators.values()
строка отображает правильные значения, однако, при осмотре из запись в django admin, супервизор не был сохранен как оператор.
ie.
self.operators.add(self.supervisor) # fails to commit
Какая магия нужна мне здесь?
У меня та же проблема. Я даже настроил сигнал post_save и не смог использовать метод add(). Ни одна из сторон моего ManyToMany не использует свой идентификатор autonumber по умолчанию. Интересно, имеет ли это какое-либо отношение к этому. –