【发布时间】:2023-04-05 23:41:01
【问题描述】:
对于我的父模型 - StudioProfile,其他模型与 StudioProfile 具有外键关系。向我的StudioProfile 序列化程序发出 API 请求时,如何获取所有相关的表数据。下面是我的模型、视图和序列化器,
class StudioProfile(models.Model):
name = models.CharField(max_length = 120)
address_1 = models.CharField(max_length = 200)
address_2 = models.CharField(max_length = 200)
class StudioServices(models.Model):
studio_profile = models.ForeignKey(StudioProfile, related_name = "services")
service_name = models.CharField(max_length = 50)
class StudioPicture(models.Model):
studio_profile = models.ForeignKey(StudioProfile, related_name = "pic_of_studio")
picture = models.ImageField(upload_to = 'img_gallery', null = True, blank = True)
序列化器.py
class StudioServicesSerializer(serializers.ModelSerializer):
class Meta:
model = StudioServices
fields = ('studio_profile', 'service_name')
class StudioPicSerializer(serializers.ModelSerializer):
class Meta:
model = StudioPicture
fields = ('picture')
class StudioProfileSerializer(serializers.ModelSerializer):
services = StudioServicesSerializer(source = "StudioServices")
pic_of_studio = StudioPicSerializer(source = "StudioPicture")
class Meta:
model = StudioProfile
fields = ( 'address_1', 'address_2','services','pic_of_studio' )
views.py
class StudioProfile(ListAPIView):
permission_classes = (ReadWithoutAuthentication,)
serializer_class = StudioProfileSerializer
queryset = StudioProfile.objects.select_related().filter(id = 1)
我无法获取数据。我在这里做错了什么?当我向StudioProfile class 发出请求时,我如何才能获得所有相关条目。
追溯:
尝试在序列化程序
StudioProfileSerializer上获取字段service_name的值时出现 AttributeError。 序列化程序字段可能命名不正确,并且与StudioProfile实例上的任何属性或键都不匹配。 原始异常文本为:“StudioProfile”对象没有属性“StudioServices”。
【问题讨论】:
标签: python django django-rest-framework