2011-02-08 219 views
0

我試圖使用to_fielddb_column參數獲得select小部件的字段值,但它們似乎不起作用。Django:ForeignKey to_field和db_column似乎不起作用

這裏是模型:

 

class Employer(models.Model): 
    e_name  = models.CharField(
            max_length = 40, 
            verbose_name = 'Name') 

    e_lastname = models.CharField(
            max_length = 40, 
            verbose_name = 'Lastname') 

    e_position = models.ForeignKey(
            to = Position, 
            db_field = 'p_name', # this is the thing I want to display as a select widget option 
            verbose_name = 'Position') 
 

相反,我只有一個模型在選擇窗口小部件的名稱,也db_column使參考Employer模式,但Position參考。

什麼問題或新功能我不知道?

蘇丹

+0

我不太明白,你的意思是你想要一個表單能夠輸入這個模型的數據嗎? – 2011-02-08 12:39:33

+0

我希望能夠爲每個新創建的「僱主」實體選擇職位,在職位列表中有可用職位列表。 – sultan 2011-02-08 13:08:10

回答

1

如果你需要的是所有可用的位置的從一個HTML選擇控件來選擇,你可以得到那些像這樣:

p_names = (p.name for p in Position.objects.all()) 

但你怎麼產生的HTML?如果使用的是您可以使用

POS_CHOICES = [(p.id, p.name) for p in Position.objects.all()] 
class EmployerForm(forms.Form): 
    p_choices = forms.CharField(widget=forms.Select(choices=POS_CHOICES)) 

,並在HTML模板使其forms.Form:

{{form.p_choices}} 

看一看在formsmodelforms

編輯: 我剛剛看到了django-admin標籤。我真的不知道如何在管理區域做到這一點,對不起。