gpt4 book ai didi

python - 如何在 Django 管理面板上显示多对多字段?

转载 作者:行者123 更新时间:2023-12-05 02:01:07 26 4
gpt4 key购买 nike

我有 2 个模型,Product 和 Tag。产品和标签之间的关系是多对多关系。

如何在 Django 管理面板上显示“标签”字段?当我使用下面的代码时,当前值为 None

模型.py

class Tag(models.Model):
name = models.CharField(max_length=200, null=True)

def __str__(self):
return self.name

class Product(models.Model):
CATEGORY = (
('Indoor','Indoor'),
('Outdoor','Outdoor'),
)

name = models.CharField(max_length=200, null=True)
price = models.FloatField(null=True)
category = models.CharField(max_length=200, choices=CATEGORY)
description = models.CharField(max_length=200, null=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
tags = models.ManyToManyField(Tag)

admin.py

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ['id','name','price','category','tags']
list_display_links = ['name']

def tags(self):
return self.tags.name

最佳答案

试试这个

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'price', 'category', 'get_tags']
list_display_links = ['name']

def get_tags(self, obj):
if obj.tags.all():
return list(obj.tags.all().values_list('name', flat=True))
else:
return 'NA'

引用这个https://docs.djangoproject.com/en/3.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display

关于python - 如何在 Django 管理面板上显示多对多字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66776107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com