选择和相关模型的问题

时间:2010-03-02 09:55:32

标签: django django-models django-templates django-forms

我有这样的模特:

class IdfPracownicy(models.Model):
   nazwa = models.CharField(max_length=100)

class IdfPracaOpinie(models.Model):
   nazwa = models.CharField(max_length=30)

class IdfPraca(models.Model):
    numer_idf = models.ForeignKey(IdfPracownicy)
    [...]
    opinia = models.ForeignKey(IdfPracaOpinie)
    uwagi = models.TextField()
    data_wpisu = models.DateTimeField(auto_now=True)

我创建了这样的表单:

class IdfPracaForm(forms.ModelForm):
    numer_idf = forms.ModelChoiceField(queryset=IdfPracownicy.objects.all(), widget=forms.HiddenInput)
    opinia = forms.ModelChoiceField(queryset=IdfPracaOpinie.objects.all(),empty_label=None)

    class Meta:
        # Nazwa modelu
        model = IdfPraca

当我在浏览器中显示此表单时,<option>标记会显示如下对象实例:

<select name="opinia" id="id_opinia"> 
<option value="1">IdfPracaOpinie object</option> 
<option value="2">IdfPracaOpinie object</option> 
<option value="3">IdfPracaOpinie object</option> 
<option value="4">IdfPracaOpinie object</option> 
</select>

而不是字段“纳兹瓦”的价值观。我做错了什么?

2 个答案:

答案 0 :(得分:1)

__unicode__模型上实施IdfPracaOpinie方法,如下所示:

class IdfPracaOpinie(models.Model):
   nazwa = models.CharField(max_length=30)

   def __unicode__(self):
      return self.nazwa

答案 1 :(得分:1)

为您的模型定义__unicode__方法:

class IdfPracownicy(models.Model):
       nazwa = models.CharField(max_length=100)

       def __unicode__(self):
            return self.nazwa