【发布时间】:2019-09-17 19:46:13
【问题描述】:
我有这些模型:
class Orders(models.Model):
order_id = models.AutoField(primary_key=True)
user_id = models.IntegerField()
status = models.CharField(max_length=100)
created_at = models.CharField(max_length=100)
class Meta:
managed = False
db_table = 'orders'
class OrderItems(models.Model):
order_id = models.ForeignKey(Orders, models.DO_NOTHING)
quantity = models.IntegerField()
class Meta:
managed = False
db_table = 'order_items'
现在假设我希望 orders 模型的 list_display 显示列
order_id, user_id, status, created_at, quantity
我知道我可以这样做:
class OrdersAdmin(admin.ModelAdmin):
list_display = ('id', 'user_id', 'status', 'created_at', 'get_quantity')
class Meta:
model = Orders
def get_quantity(self, obj):
result = XXX
return result.get('quantity')
get_quantity.short_description = 'Quantity'
admin.site.register(Order, OrderAdmin)
如何通过XXX 访问我需要的信息?
【问题讨论】:
-
一个订单有多个order_items,你想显示多少?
-
例如 order_id 为 1。
-
我的意思是订单-> order_items 是一对多的关系。 order_id = 1 的 order_items 可以有很多。你想要所有数量的总和吗?
-
另外你的模型是如何定义的? order_id 是 OrderItem 上的 ForeignKey 吗?
-
你应该展示模型而不是数据库表的图片。
标签: django django-models django-forms django-views django-admin