Мои остальные сериализаторы фреймворков, как показано ниже:
class ResultSerializer(serializers.ModelSerializer):
addline = serializers.JSONField();
city = serializers.JSONField();
unitcode = serializers.JSONField();
maid = serializers.JSONField();
class Meta:
model = address
fields = ('addline', 'city', 'unitcode', 'maid')
У меня есть две модели:
class address(models.Model):
addline = models.CharField(max_length=120)
city = models.CharField(max_length=120)
unitcode = models.CharField(max_length=120)
maid = models.CharField(primary_key=True)
class dep(models.Model):
maid = models.CharField(primary_key=True)
unit = models.CharField(max_length=120)
Это пример фильтра:
queryset = address.objects.filter(addline__icontains=‘110A Ave’)
Текущий ток данных, который я получаю:
[ {
"addline": "14075 110A Ave",
"city": "Surrey",
"unitcode": "U",
"maid": 113091
},
{
"addline": "14143 110A Ave",
"city": "Surrey",
"unitcode": "S",
"maid": 113104,
]
Но то, что я хочу, это когда единичный код равен "U", там будет еще элемент: единица, как показано ниже:
[ {
"addline": "14075 110A Ave",
"city": "Surrey",
"unitcode": "U",
"maid": 113091
},
{
"addline": "14143 110A Ave",
"city": "Surrey",
"unitcode": "S",
"maid": 113104,
"unit": [ "A-101", "A-102", "A-103", "A-104"]
}
]
Update2:
Основываясь на http://www.django -rest-framework.org / api-guide / Relations / # the-queryset-аргумент , мой текущий Models.py такой, как показано ниже:
class address(models.Model):
addline = models.CharField(max_length=120)
city = models.CharField(max_length=120)
unitcode = models.CharField(max_length=120)
maid = models.CharField(primary_key=True)
class dep(models.Model):
maid = models.ForeignKey(address, related_name='tracks',
on_delete=models.CASCADE)
unit = models.CharField(max_length=120)
serializers.py как показано ниже:
class ResultSerializer(serializers.ModelSerializer):
tracks = serializers.StringRelatedField(many=True)
class Meta:
model = address
fields = ('addline', 'city', 'unitcode', 'tracks')
Но это не сработало, есть ли проблемы?