我是 django 的新手并且正在苦苦挣扎,我查看了谷歌但找不到任何可以提供帮助的东西。
这是我的模型:
from django.db import models
# from django.contrib.auth.models import
class Order(models.Model):
table_id = models.IntegerField(unique=True)
meal = models.ManyToManyField('meals')
# Meal = models.ForeignKey('Meals',on_delete=models.CASCADE)
@property
def total_price(self):
price = self.meal.objects.all().aggregate(total_price=models.Sum('meals__price'))
return price['total_price']
class Meals(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(decimal_places=2, max_digits=5)
这是我的 serializer.py :
from rest_framework import serializers
from cafe_app import models
class MealSerializer(serializers.ModelSerializer):
class Meta:
model = models.Meals
fields = ['id','name','price',]
class OrderSerializer(serializers.ModelSerializer):
**meal = MealSerializer(read_only=True,many=True)**
class Meta:
model = models.Order
fields = ['table_id','meal',]
当我评论meal = MealSerializer(read_only=True,many=True) 行时,它将输入显示为table_id 和meal,其中meal 值为Meal Object (1), Mean Object (2) ...。
我的问题:
- 如何显示膳食对象值而不是将其显示为对象。
- 如何在我的视图/序列化程序中使用 total_price 方法。
- 如何查看流程,例如它如何从哪个类流向哪个类调用,以及我收到的结构的类型和值是什么。
谢谢。