Django:如何在ForeignKey模型字段上定义动态初始值

时间:2010-08-29 13:41:12

标签: django django-models django-forms

如何在外键字段上定义动态初始值?

使用代码:

from django.db import models
from django.conf import settings
from django.contrib.sites.models import Site

class Example(models.Model):
    site = models.ForeignKey(Site, initial=settings.SITE_ID)

我遇到以下错误:

site = models.ForeignKey(Site, initial=settings.SITE_ID)
Field.__init__(self, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'initial'

我也尝试过:

class Example(models.Model):
    site = models.ForeignKey(Site, initial=Site.objects.get(id=settings.SITE_ID))

提前致谢

3 个答案:

答案 0 :(得分:4)

模型字段不采用“初始”参数,它们采用“默认”。

答案 1 :(得分:1)

覆盖模型的save()方法,并检查字段的值是否为None

答案 2 :(得分:0)

如果我理解你关于动态部分,那么这与Django foreign key FAQ和James Bennett的Django tips: auto-populated fields有关(参见 The Holy Grail 小标题:-)。