[英]Setting up default ForeignKey in django models
我需要在模型声明阶段(在models.py中)为模型设置默认外键。 我使用以下代码:
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self):
return str(self.pub_date)
def create_question():
q=Question(question_text='default text', pub_date=datetime.now())
q.save()
return q.id
class Choice(models.Model):
question = models.ForeignKey(Question, default=lambda: create_question())
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
这可以正常工作,创建Choice实例和关联的Question实例。但是保存Choice实例会导致创建两个附加的(无用的)Question实例。 在Choice实例保存期间,似乎多次调用了default-lambda。 我不需要这些额外的Question实例。 如何避免它们的创造?
注意:在python-shell中,一切正常
c=Choice(votes=5, choice_text='dim')
c.save()
创建一个Choice实例和一个Question关联实例。 仅使用管理员保存按钮会导致额外的问题实例创建!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.