2016-06-12 2 views
-1

私はPythonモデルを持っています。私はcategory + nameの2つのフィールドの組み合わせを返したいと思います。Django:自己管理のために2つの文字列を返します

唯一のことは、カテゴリフィールドがリレーションシップであり、カテゴリテーブル内では「名前」フィールドであることです。 __str__が名前であることに注意してください。


例:

カテゴリーテーブル:1 "ホット" ID

ProductテーブルID 1 "チョコレート"

Django-で管理者(wh Iを除く)で:+用サポートされていないオペランドのタイプ(S):

class Product(models.Model): 
    name = models.CharField(_('product_name'), max_length=55) 
    image = models.CharField(_('product_image'),max_length=255) 
    description = models.CharField(_('product_description'), max_length=500) 
    price = models.DecimalField(_('product_price'), max_digits=4, decimal_places=2) 
    category = models.ForeignKey(Categorie, on_delete=models.CASCADE) 

    def __str__(selfProduct): 
     return self.category + self.name 

エラーは以下の通りです: "ホットチョコレート" ここ


はコードである 'Categorie'と 'str'

ありがとう!

+0

ここでの質問は何ですか?あなたが 'self.category.name + self.name'を必要とすると思います。 –

+0

@JoranBeasleyこれは文字列以外を返します –

+0

あなたはエラーが起こりますか?あなたが期待しているもの(すなわち「ホットチョコレート」)だけでなく、期待していないあなたの実際の出力が何であるかを教えてください。 –

答えて

0

+オペランドに2つの文字列を付ける必要があります。だからstr(self.category) + self.nameはうまくいくだろう。カテゴリにname属性がある場合は、おそらくself.category.name + self.nameです。

カテゴリオブジェクトにアクセスすると、多くのクエリが原因で管理者が遅くなることがあるので注意してください。

関連する問題