gpt4 book ai didi

django-models - Django 模型 - 使用 ManyToManyField add() 方法的问题

转载 作者:行者123 更新时间:2023-12-04 07:09:17 24 4
gpt4 key购买 nike

我在使用下面的 add() 方法时遇到问题...

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() line 显示正确的值,但是,在检查 django admin 中的记录时,supervisor 尚未保存为运算符(operator)。

IE。
self.operators.add(self.supervisor) # fails to commit

我在这里需要什么样的魔法?

最佳答案

我随机发现了这个问题,所以可能不是真的,但你应该先保存 self.supervisor:

def save(self, **kwargs):
super(JobRecord, self).save(**kwargs)
if not self.operators.filter(pk=self.supervisor.pk):
self.supervisor.save()
self.operators.add(self.supervisor)
print self.operators.values()

关于django-models - Django 模型 - 使用 ManyToManyField add() 方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/633333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com