[英]Django readonly_fields not showing data
我的Orders
model 有一个rate
和total_amount
字段。 我必须从不同的模型中得出速率,所以我创建了unit_rate
。
同样,我希望我的total_amount
字段是quantity
和unit_rate
的乘积,我通过执行total_pay
进行了尝试。
这是我的代码:
class OrderAdmin(admin.ModelAdmin):
def unit_rate(self,obj):
self.rate = Product.objects.get(pk=obj.order_id)
return self.rate.price
def total_pay(self,obj):
self.rate = Product.objects.get(pk=obj.order_id)
self.total_amount = self.rate.price * obj.quantity
return self.total_amount
list_display = ('order_id', 'order_item', 'order_status', 'delivery_address', 'customer',
'quantity','unit_rate','total_pay')
readonly_fields = ('total_pay','unite_rate')
admin.site.register(Orders,OrderAdmin)
由于total_pay
和unit_rate
是从其他列中获取的,因此管理员无需输入它们。 这就是我将它们保留在readonly_fields
上的原因。
问题是,每当它通过管理界面创建订单时, total_pay
和unit_rate
不会显示在管理中。 它只显示这样的破折号: -
。
它已经这样做了一段时间,所以我真的可以使用你的帮助。 谢谢。
实际上挖掘了几个小时我找到了解决方案。
class OrderAdmin(admin.ModelAdmin):
list_display = ('order_id', 'order_item', 'order_status', 'delivery_address', 'customer',
'quantity','unit_rate','total_pay')
def unit_rate(self,obj):
rate = Product.objects.get(pk=obj.order_item.product_id)
return rate.price
def total_pay(self,obj):
rate = Product.objects.get(pk=obj.order_item.product_id)
total_amount = rate.price * obj.quantity
return total_amount
admin.site.register(Orders,OrderAdmin)
实际上我不知道如何将product_id
与order_item
一起传递。 而且我认为即使是文档也无济于事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.