Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 如何显示关联的表单字段?_Python_Django_Python 3.x - Fatal编程技术网

Python 如何显示关联的表单字段?

Python 如何显示关联的表单字段?,python,django,python-3.x,Python,Django,Python 3.x,请帮忙解决这个问题 有一个包含用户数据的表。该表有一个相关字段“性别”。您希望显示一个带有下拉列表的表单,以选择性别 models.py: class Gender(models.Model): gender = models.CharField( max_length=10, blank=False, ) class UserProfile(User): nickname = models.CharField(

请帮忙解决这个问题

有一个包含用户数据的表。该表有一个相关字段“性别”。您希望显示一个带有下拉列表的表单,以选择性别

models.py:

class Gender(models.Model):     
    gender = models.CharField(
        max_length=10, 
        blank=False,
    )   
class UserProfile(User):
    nickname = models.CharField(
        'Отображаемое имя',
        max_length=30, 
        blank=False,
    )
    gender = models.ForeignKey(
        Gender,
        #default=1,
        null=True,
    )
views.py:

def personal_data_page(request):
    entry_user_profile = UserProfile.objects.get(user_ptr_id__exact=request.user.id)    
    form = PersonalDataForm(instance=entry_user_profile)    

    t = loader.get_template('personal_data_page.html')
    c = RequestContext(request, {
        'form': form,
    })
    return HttpResponse(t.render(c)) 
forms.py:

class PersonalDataForm(forms.ModelForm):    
    class Meta:
        model = UserProfile
        fields = (
            'nickname', 
            'gender',  
        )
个人数据页面.html:

<div class="cell">
    <label class="label">{{ form.gender.label }}</label>

    {{ form.gender }}

    {{ form.gender.errors }}
</div>

{{form.gender.label}
{{form.gender}
{{form.gender.errors}
问题是线路输出

一,

。我需要输出如下内容:

<select>
    <option value="1">Male</option>
    <option value="2">Female</option>
</select>

男性
女性

为什么要在性别表中创建一个带有
外键的
用户档案
模型?只需在UserProfile中包含性别

您要查找的内容称为
选择\u字段

以下是一个例子:

以下是文档:

此外,以下是一些关于使用带有选项的小部件的文档:

编辑

如果您确实想保留性别表:

class PersonalDataForm(forms.ModelForm):    
    class Meta:
        model = UserProfile
        fields = (
            'nickname', 
            'gender',  
        )
        widgets = {'gender': forms.ModelChoiceField(queryset = 
                                                    Gender.objects.all())}
,假设您已经为
性别定义了
\uuuuuunicode\uuuuuu

请参阅此处的更多信息:


  • 我需要通过foreignKey,但不是通过Choices为您编辑。附言:如果你想成为国际社会的一部分,并希望得到英语的回答,请学习基础英语。我们首先需要理解你的问题