2014-09-20 59 views
0

请帮忙解决问题如何使用SELECT?

与外键的模式:

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',  
     ) 

结果sh OWS在这样的价值观选择的形式:

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

请帮助在类型字段的值,使选择:

----- 
M 
Ж 

回答

1

添加__unicode()__方法您Gender型号:

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

    def __unicode__(self): 
     return self.gender 

那样,Django就会知道如何显示那些对象的Gender

+0

'__str__'代替'__unicode__',如果你在python 3.x上 – frnhr 2014-09-21 12:11:26