【发布时间】:2016-11-09 18:26:59
【问题描述】:
我有两个模型,一个具有 M2M 关系和一个相关名称。我想在序列化程序和相关字段中包含 所有 字段。
models.py:
class Pizza(models.Model):
name = models.CharField(max_length=50, unique=True)
toppings = models.ManyToManyField(Topping, null=True, blank=True, related_name='pizzas')
class Topping(models.Model):
name = models.CharField(max_length=50, unique=True)
price = models.IntegerField(default=0)
serializer.py:
class ToppingSerializer(serializers.ModelSerializer):
class Meta:
model = Topping
fields = '__all__'
这可行,但不包括相关字段。
fields = ['name', 'price', 'pizzas']
这完全符合我的要求,但是当 Toppings 模型有很多字段时会发生什么。我想做类似的事情:
fields = ['__all__', 'pizzas']
此语法导致错误提示:
字段名称
__all__对模型无效
有没有办法实现想要的行为?或者使用相关名称时必须手动输入字段?
【问题讨论】:
-
stackoverflow.com/questions/14573102/… - 答案再好不过了 - 如果来自作者本人的话。
-
@karthikr 这并没有真正解释如何做我想做的事。它只是解释了如何嵌套 M2M。我不想那样做。我想在序列化程序“字段”中包含相关字段和 all 标记
标签: django django-models django-rest-framework