首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >显示数据库Django中的复选框值

显示数据库Django中的复选框值
EN

Stack Overflow用户
提问于 2019-07-16 16:26:23
回答 1查看 431关注 0票数 0

我在做一个ModelForm。我有一个性别字段,在那里我给了choices.In forms.py文件,我已经将这些选择转换为复选框使用小工具。

模型.py

代码语言:javascript
代码运行次数:0
运行
复制
class UserModel(models.Model):
    #username=models.ForeignKey(
    #    on_delete=models.CASCADE,
     #   related_name='custom_user')

    name=models.CharField(
        max_length=50,
        verbose_name='Full Name',
    )

    gender=models.CharField(
        choices=(
            ('M','Male'),
            ('F','Female'),
        ),
        max_length=1,
        verbose_name='Gender',
        default='M'
    )

forms.py

代码语言:javascript
代码运行次数:0
运行
复制
class UserForm(forms.ModelForm):


    class Meta:
        model=UserModel
        exclude=()
        widgets = {
            'DOB': forms.SelectDateWidget(),
            'gender':forms.RadioSelect(),
            #'hobbies':forms.CheckboxSelectMultiple()

        }

一切正常,数据存储在数据库中,但是当我在django shell中使用commands.Instead从数据库中获取数据时,我得到了'M‘或'F’。我知道对于选择字段,我们可以使用object_of_modelclass.get_gender_display来获取选择的名称,它会返回选择的全名。但是,由于我已经将选择转换为forms.py中的复选框字段,所以现在当我使用object_of_modelclass.get_gender_display从数据库获取数据时,它将返回

Django shell命令im使用:

代码语言:javascript
代码运行次数:0
运行
复制
from .models import UserModel
a=Usermodel.objects.get(pk=1)
a.get_gender_display

它返回

代码语言:javascript
代码运行次数:0
运行
复制
functools.partial(<bound method Model._get_FIELD_display of <UserModel: hoo>>, field=<django.db.models.fields.CharField: gender>)

如何获得“男性”和“女性”的原名?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 16:36:32

您应该将get_FIELD_display作为函数调用,因此使用()。

代码语言:javascript
代码运行次数:0
运行
复制
a.get_gender_display()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57053055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档