2016-04-04 17 views
0
ブラウザで
class New(models.Model): 
..... 
category = models.ForeignKey(TourCategory, verbose_name="Tour Category") 

Djangoは代わりにTourCategory名の `TourCategory object`文字列を表示し

<select id="id_category" name="category"> 
<option value="" selected="selected">---------</option> 
<option value="1">TourCategory object</option> 
<option value="2">TourCategory object</option> 
<option value="3">TourCategory object</option> 
</select> 

モデルTourCategory

from django.db import models 

class TourCategory(models.Model): 
name = models.CharField(max_length=200, verbose_name="Name") 

class Meta: 
    verbose_name = 'Tour Category' 
    verbose_name_plural = 'Tour categories' 

それはTourCategory

+0

TourCategoryモデルに関連するコードを投稿してください。 –

+1

あなたの質問のタイトルは説明と一致しません。これはあなたの実際の質問ですか? – Sayse

答えて

1

のPythonの名前を表示させることを目標Class '__unicode__メソッドを使用します(ユニコードを使用していない場合は__str__メソッド)。 de)を押して、そのオブジェクトのobject representationを表示します。

Djangoはこのメソッドを使用して管理サイトにオブジェクトを表示します。

ですから__unicode__(または__str__)を定義したり、修正する必要があり

class TourCategory(models.Model): 
    name = models.CharField(max_length=200, verbose_name="Name") 

    def __unicode__(self): 
     return unicode(self.name) 

    def __str__(self): 
     return self.name 

Look here for the documentation。通常は、 self.nameunicodeをキャストする必要はありませんが、私はそれを書いて、テストの有無にかかわらずテストできます。

関連する問題