2010-08-29 95 views
3

如何在外鍵字段上定義動態初始值?Django:如何在ForeignKey模型字段上定義動態初始值

隨着代碼:

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)) 

在此先感謝

回答

4

模型字段不採用「初始」參數,它們採用「默認」。

+0

對!在環顧四周時,我開始使用Model.default並以Field.initial結尾,然後將它們混合起來。 我的問題其實在其他地方,但無論如何你幫助我找到解決方案。 似乎無法在新模型中定義動態默認值,然後執行syncdb。所以我必須刪除默認參數,執行syncdb,然後在模型中添加默認值。 – 2010-08-31 20:38:16

1

覆蓋的save()的方法,並檢查該字段的值是否爲None

+0

謝謝。它可以完成這項工作,但我想在表單中顯示一個默認值。 – 2010-08-31 20:25:43

0

如果我理解你說得對動態一部分,這是關係到一個Django foreign key FAQ,和詹姆斯·貝內特的Django tips: auto-populated fields(見聖盃小標題:-)。

+0

謝謝,但我不希望它被自動填充,我希望用戶能夠選擇比默認值更多的值。 – 2010-08-31 20:27:17

相關問題