1
我有一个Device和DeviceGroup的表。它们之间的关系是一个设备只能在一个组上,即同一个设备不能在多个组上。但同一组可以有多个设备。对于我设计我的模型显示在字符串而不是整数
模式
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)
串行
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')
在我的API,我看到设备组中的整数"device_group": 1
。如果以字符串显示,它应该是“device_group”:“个人”。我如何显示字符串?也是我的方式来显示设备和DeviceGroup之间的关系吗?
这个名字在我的案例中是独一无二的。我会试着去理解这里发生的事情。 – Serenity
我的模型设计和序列化是否适合我的案例?设备只能在一个组中(同一设备不能在多个组中),但一个组可以有多个设备。 – Serenity
当我做device_group = serializers.StringRelatedField(许多= True)里面的DeviceSerializer我得到空的数据对象。 – Serenity