Django: ForeignKey的to_field和db_column似乎无效
我正在尝试通过 to_field
或 db_column
参数来获取 select
组件的字段值,但它们似乎没有效果。
这是我的模型:
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')
结果我在 select
组件中只看到了模型的名称,而且 db_column
还指向了 Employer
模型,但实际上应该是 Position
模型。
这是哪里出错了,或者我不知道的新功能是什么呢?
苏尔坦
1 个回答
1
如果你只需要在一个HTML选择框中列出所有可用的Position选项,可以这样获取:
p_names = (p.name for p in Position.objects.all())
那么,怎么生成HTML呢?如果你使用的是forms.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}}
补充:我刚看到django-admin的标签。对于在管理区域怎么做,我不是很清楚,抱歉。