2016-09-07 27 views
5

ManyToMany Field Coming as objectDjangoの多対多のフィールドは値

model.py

class MedtechProductCategory(models.Model): 
name = models.CharField(max_length=128, null=False, blank=False) 
type = models.CharField(choices=type_choices_for_tag, max_length=512) 

class Meta: 
    db_table = 'medtech_product_category' 

class ProductsInfo(models.Model): 
deal_active = models.BooleanField(default=True) 
category = models.ManyToManyField(MedtechProductCategory, related_name='product_info_category') 

class Meta: 
    db_table = 'products_info' 

def getTags(self): 
    return self.category.values_list() 

admin.py

class ProductsInfoAdmin(admin.ModelAdmin): 
filter_horizontal = ('category',) 
admin.site.register(ProductsInfo, ProductsInfoAdmin) 

は、だから私は、フィルタの検索にカテゴリフィールドの名前を表示したいです保存中にそれらをオブジェクトとして保存する必要があります。多対多のフィールドの名前を表示するには、それをカスタマイズし、上、使用したい文字列を返しますあなたのモデルに__unicode__メソッドを追加します。多対多フィールド

答えて

5

のオブジェクトを保存保存方法

python 3の場合は、代わりに__str__を使用してください。

# on ProductsInfo model 
def __str__(self): 
    return self.category.name 
+0

MedtechProductCategoryまたはProductsInfo のモデルとfilter_horizo​​ntalに追加する内容は何ですか? – Gagan

+0

@Gaganあなたが作るすべてのモデルに '__str__'または' __unicode__'メソッドを含めることをお勧めします。上記の例は、 'ProductsInfo'モデルに進むべきです。私はあなたの質問の残りの部分を理解していません。 – denvaar

関連する問題