2016-09-07 20 views
5

ManyToMany Field Coming as objectDjango ManyToMany Dòng với tên trường đánh giá cao

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) 

Vì vậy, tôi muốn hiển thị tên của các lĩnh vực loại trong việc tìm kiếm bộ lọc và muốn lưu chúng dưới dạng đối tượng trong khi lưu.

Làm thế nào để tùy chỉnh nó để hiển thị tên của trường manytomany và tiết kiệm lưu các đối tượng của trường manytomany

Trả lời

5

Thêm một phương pháp __unicode__ để mô hình của bạn mà sẽ trả về chuỗi mà bạn muốn sử dụng.

Đối với trăn 3, hãy sử dụng __str__ để thay thế.

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

mô hình MedtechProductCategory hoặc ProductInfo và cần thêm gì vào filter_horizontal? – Gagan

+0

@Gagan thực tiễn tốt là bao gồm phương thức '__str__' hoặc' __unicode__' trên mọi mô hình bạn thực hiện. Ví dụ trên nên đi trên mô hình 'ProductInfo'. Tôi không hiểu phần còn lại của câu hỏi của bạn. – denvaar

Các vấn đề liên quan