Ich habe eine Tabelle für Device und DeviceGroup. Die Beziehung zwischen ihnen ist ein Gerät kann nur auf einer Gruppe sein, d. H. Das gleiche Gerät kann nicht auf mehr als einer Gruppe sein. Aber dieselbe Gruppe kann mehrere Geräte haben. Dafür habe ich mein Modell haben entworfen alsIn String anstelle von Ganzzahl anzeigen
Modelle
class Device(BaseDevice):
"""
This stores Device
"""
description = models.TextField(blank=True, null=True)
device_group = models.ForeignKey('DeviceGroup', null=True, blank=True)
created_on = models.DateTimeField(auto_now_add=True)
updated_on= models.DateTimeField(auto_now=True)
class DeviceGroup(models.Model):
name = models.CharField(max_length=250, blank=False, null=False)
created_on = models.DateTimeField(auto_now_add=True)
updated_on= models.DateTimeField(auto_now=True)
Serializer
class DeviceSerializer(serializers.ModelSerializer):
id = serializers.UUIDField(source='token', format='hex', read_only=True)
io = DeviceIOSerializer(read_only=False, many=True, required=False)
class Meta:
model = Device
fields = ('id', 'name', 'description', 'io', 'device_group')
in meiner api siehe i-Gerätegruppe in integer als "device_group": 1
. Wenn es in einer Zeichenfolge angezeigt wird, sollte es "device_group": "personal" sein. Wie kann ich in einer Zeichenfolge anzeigen? Auch ist meine Art, die Beziehung zwischen Device und DeviceGroup richtig zu zeigen?
Der Name ist in meinem Fall einzigartig. Ich werde das versuchen, um zu verstehen, was hier passiert. – Serenity
Ist mein Modell Design und Serializer richtig mit meinem Fall? Ein Gerät kann sich nur in einer Gruppe befinden (dasselbe Gerät kann nicht in mehr als einer Gruppe sein), aber eine Gruppe kann mehrere Geräte haben. – Serenity
Wenn ich Device_group = serializers.StringRelatedField (viele = True) innerhalb DeviceSerializer ich bekomme leere Datenobjekt. – Serenity