Django Admin中UserCart模型的menu_item_quantity字段未显示如何解决?
问题出在你的UserCart模型定义里,menu_item_quantity字段末尾多了一个多余的逗号,导致这个字段被Python解析为元组的一部分,而非有效的Django模型字段,所以Django没有识别到这个字段,Admin也就不会显示它。
修复步骤
- 移除
menu_item_quantity字段行末尾的逗号:
class UserCart(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) menu_item = models.ForeignKey(MenuItem, on_delete=models.CASCADE) menu_item_quantity = models.SmallIntegerField(max_length=2) # 去掉此处多余的逗号 unit_price = models.DecimalField(max_digits=6, decimal_places=2) price = models.DecimalField(max_digits=6, decimal_places=2) class Meta: unique_together = ('user', 'menu_item')
- 执行数据库迁移(模型字段定义变更后需要同步到数据库):
python manage.py makemigrations python manage.py migrate
- 刷新Django Admin页面,此时
menu_item_quantity字段即可正常显示。
可选:自定义Admin显示字段
如果需要更精确地控制Admin列表页显示的字段,可以在admin.py中定义ModelAdmin类:
from django.contrib import admin from .models import Category, MenuItem, Order, OrderItem, UserCart class UserCartAdmin(admin.ModelAdmin): list_display = ('user', 'menu_item', 'menu_item_quantity', 'unit_price', 'price') admin.site.register(UserCart, UserCartAdmin)
通过list_display可以强制指定列表页要展示的字段,避免依赖Django的默认显示逻辑。
内容的提问来源于stack exchange,提问作者Nabeel Ahmed
相关产品推荐
相关产品推荐

