【发布时间】:2020-03-24 01:19:04
【问题描述】:
我有多对多关系,我想序列化反向关系。
这是我的模型:
class Nutrition(models.Model):
name = models.CharField(max_length=30, blank=False)
def __str__(self):
return self.name
class Company(models.Model):
name = models.CharField(max_length=30, blank=False)
nutritions = models.ManyToManyField(Nutrition, blank=True, related_name="companyID")
def __str__(self):
return self.name
这是我的序列化程序:
class NutritionSerializer(serializers.ModelSerializer):
companyID = CompanySerializer(read_only=True, many=True)
class Meta:
model = Nutrition
fields=('id', 'name', 'companyID')
class CompanySerializer(serializers.ModelSerializer):
nutritions_list = NutritionSerializer(source="nutritions", read_only=True, many=True)
class Meta:
model = Company
fields = ('id', 'name', 'nutritions_list')
我得到一个错误:
NameError:名称“CompanySerializer”未定义
【问题讨论】:
-
这不会返回 "Infinite nested serialized" 结果,对吗?
-
我不知道)。 “直接关系”(在我的情况下为 Nutritions_list)按预期工作。我不知道如何处理反向...
-
NameError 是你从 Python 本身得到的。
-
这是什么意思?看来我没有打错什么。
标签: django serialization django-rest-framework many-to-many relational-database