0

私はモデルを持っています:

class Detail(models.Model):
    types_choices = (
        (1, 'Sport'),
        (2, 'Turbo'),
        (3, 'Turbo++'),
    )   
    car = models.ForeignKey(Car)
    d_type = models.PositiveIntegerField(choices=types_choices, max_length=1)
    def __unicode__(self):
        return u"%s, %s" % (self.car.name, types_choices[self.d_type][1])

管理インターフェイスにエラーがあります: global name 'types_choices' is not defined。私はそれが私の帰りについて考えます。修正方法は?管理インターフェイスの 1 つの文字列に、車の名前と「スポーツ」(またはターボなど) が必要です。

ありがとう。

4

3 に答える 3

2

あなたは自分自身を忘れました。

class Detail(models.Model):
    types_choices = (
        (1, 'Sport'),
        (2, 'Turbo'),
        (3, 'Turbo++'),
    )   
    car = models.ForeignKey(Car)
    d_type = models.PositiveIntegerField(choices=types_choices, max_length=1)
    def __unicode__(self):
        return u"%s, %s" % (self.car.name, self.types_choices[self.d_type][1])
于 2013-03-15T14:46:31.063 に答える
2

を使用する必要がありますself.get_d_type_display()

于 2013-03-15T14:46:56.470 に答える
0

を使用する必要がありますself.types_choices。これは、クラスtypes_choicesのプロパティであるためです 。Detail

Django ドキュメントには、選択肢の使用方法に関する適切なパターンがあります: https://docs.djangoproject.com/en/dev/ref/models/fields/#choices

self.get_d_type_display()を使用して、選択フィールドの詳細な名前を取得することもできます。

于 2013-03-15T14:47:23.533 に答える