Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:ForeignKey to_字段和db_列似乎不起作用_Python_Django_Django Models_Django Admin_Django Forms - Fatal编程技术网

Python Django:ForeignKey to_字段和db_列似乎不起作用

Python Django:ForeignKey to_字段和db_列似乎不起作用,python,django,django-models,django-admin,django-forms,Python,Django,Django Models,Django Admin,Django Forms,我试图使用to_field或db_column参数获取select小部件的字段值,但它们似乎不起作用 模型如下: class Employer(models.Model): e_name = models.CharField( max_length = 40, verbose_name = 'Name') e_lastname =

我试图使用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_列也引用了雇主模型,但引用了职位

我不知道哪里出了问题或有什么新功能


Sultan

如果您只需要在html select小部件中选择所有可用位置,您可以获得如下信息:

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模板中使用以下内容呈现:

{{form.p_choices}}
看一下和

编辑:
我刚看到django管理员标签。对不起,我真的不知道如何在管理区域执行此操作。

我不太明白,您的意思是希望表单能够输入此模型的数据吗?我希望能够为每个新创建的雇主实体选择职位,在职位上有职位列表。您可以使用ModelChoiceField,所以p_choices=forms.ModelChoiceFieldqueryset=Position.objects.all看起来不错。您甚至可以自定义在对象的str方法中呈现条目的方式,或者通过重写ModelChoiceField的label_from_instance方法来定制条目的呈现方式。