2014-09-20 28 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