2011-02-08 224 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标签。我真的不知道如何在管理区域做到这一点,对不起。