Django:ForeignKey to_field和db_column似乎不起作用

时间:2011-02-08 12:37:01

标签: python django django-models django-admin django-forms

我正在尝试使用selectto_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

出了什么问题或我不了解的新功能?

苏丹

1 个答案:

答案 0 :(得分:1)

如果您只需要位置可以在html选择小部件中进行选择,那么您可以获得以下内容:

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

但是你如何生成html?如果您使用的是form.Form,则可以使用

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模板进行渲染:

{{form.p_choices}}

查看formsmodelforms

编辑: 我刚刚看到了django-admin标签。我真的不知道怎么在管理区域做这件事,抱歉。