【问题标题】:how to use the SELECT?如何使用选择?
【发布时间】:2014-09-20 10:07:28
【问题描述】:

请帮忙解决问题

具有外键的模型:

class Gender(models.Model):     
    gender = models.CharField(
        max_length=10, 
        blank=True,
    )   


class UserProfile(User):            
    gender = models.ForeignKey(
        Gender,
        verbose_name='Пол',
        blank=True,
        null=True,
    )
    phone = models.CharField(
        max_length=50, 
        blank=False,
    )

    objects = UserManager()

在应用程序初始化期间,她填写了initial_data.json:

[
    {
        "model": "app_accounts.Gender",
        "pk": 1,
        "fields": {
            "gender": "Ж"
        }
    },
    {
        "model": "app_accounts.Gender",
        "pk": 2,
        "fields": {
            "gender": "М"
        }
    }
]

此页面上显示的表单:

class ProfileForm(forms.ModelForm):
    gender = forms.ModelChoiceField(
        queryset=Gender.objects.all(),
    )       
    phone = forms.CharField(
        label='Номер телефона',
        widget=forms.TextInput(),   
        required=False,     
    )

    class Meta:
        model = UserProfile
        fields = (  
            'gender',    
            'phone',    
        )

结果显示了这些值选择的形式:

---------
Gendr object
Gendr object

请帮忙带入type字段值选择:

-----
M
Ж

【问题讨论】:

    标签: python django python-3.x


    【解决方案1】:

    __unicode()__ 方法添加到您的Gender 模型中:

    class Gender(models.Model):     
        gender = models.CharField(
            max_length=10, 
            blank=True,
        )   
    
        def __unicode__(self):
            return self.gender
    

    这样 Django 就会知道如何显示那些 Gender 对象。

    【讨论】:

    • __str__ 而不是 __unicode__ 如果您使用的是 python 3.x
    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2017-08-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多