它將回傳嵌套陣列,如 { project_name:test, site_id:[[1],[2]],site_name:[[test1],[test2]] },但我想像這樣回傳 {{sitename:test1,站點標識:1},{站點名稱:test2,站點標識:2}}
class ProjectSite(models.Model):
site_id = models.AutoField(primary_key=True, unique=True)
site_name = models.CharField(max_length=200,name='project_site_name')
project_id = models.ForeignKey(Project, on_delete=models.CASCADE, blank=True, null=True,
related_name="projectid")
class ProjectSerializer(serializers.ModelSerializer):
class Meta:
model = Project
fields = '__all__'
class ProjectSiteSerializer(serializers.ModelSerializer):
class Meta:
model = ProjectSite
fields = '__all__'
class Serializer(serializers.ModelSerializer):
...
site_ids = serializers.SerializerMethodField(read_only = True)
site_name = serializers.SerializerMethodField(read_only = True)
...
def get_site_ids(self, obj):
return list(obj.projectid.values_list('id').distinct())
def get_site_name(self, obj):
return list(obj.projectid.values_list('site_name').distinct())
uj5u.com熱心網友回復:
我認為你可以使用ProjectSerializer.
class ProjectSerializer(serializers.ModelSerializer):
projectid = ProjectSiteSerializer(many = True, read_only = True)
class Meta:
model = Project
fields = ('project_id', 'project_name', 'projectid',)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488244.html
標籤:Python django django-rest-framework
上一篇:將串列轉換為包含專案的字典
下一篇:Sql觸發器不起作用
