Ich bin relativ neu zu Django, so kann ich nicht sagen, ob dies mit einer klassenbasierten Ansicht möglich ist, aber ich möchte Suchergebnisse basierend auf einem Wert in der JSON von zurückgegeben werden die Abfrage. Grundsätzlich mag ich meine Ergebnisse aus diesem gehen:Group Serializer Ergebnisse basierend auf Wert
{
"id": "0038",
"attributes": [
{
"name": "State",
"values": "CA"
},
{
"name": "Areas",
"values": "Value 1"
},
{
"name": "Areas",
"values": "Value 2"
},
{
"name": "Areas",
"values": "Value 3"
}]}
Um dies:
{"id": "0038",
"attributes": [
{
"name": "State Licenses",
"values": "CA"
},
{
"name": "Areas",
"values": ["Value 1", "Value 2", "Value 3"]
}]}
Jedes "Namen/Wert" Paar ist eine separate Zeile in einer MySQL-Datenbank. Mein models.py wie folgt aussieht:
class Attribute(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=45, blank=False)
value = models.CharField(max_length=255, blank=False)
Während die Serializer wie folgt aussieht:
class AttributeSerializer(serializers.ModelSerializer):
name = serializers.CharField(source='name')
values = serializers.CharField(source='value')
class Meta:
model = models.Attribute
fields= ('name','values')
eine Ahnung, wie ich das tun kann? ListSerializer scheint ein wahrscheinlicher Kandidat zu sein, und durch die Erweiterung wird auch das Hinzufügen von many=True
hinzugefügt, aber ich denke nicht, dass dies das gewünschte Gruppierungsverhalten bietet. Irgendwelche Ideen?
Ihr Vorschlag wird nicht funktionieren, weil eine Hashtabelle keine doppelten Schlüssel haben sollte, was in Ihrem Fall "Werte" ist. –
Wenn Sie gruppieren möchten, ist der Standard-Serializer möglicherweise nicht in der Lage, dies zu tun, nur weil Sie ein angepasstes Ergebnis wünschen. Sie können Ihren eigenen Serializer schreiben. –
Bearbeitet, um zu klären, was JSON ich suchte. –