Muk*_*kul 1 python sqlite django django-rest-framework
大家好,这里的每个人都是我面临同样问题的情况,请看一下:
分类组.py
class DeviceClassificationGroup:
vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE, default=None, null=True)
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
classification = ??
Run Code Online (Sandbox Code Playgroud)
分类.py
class DeviceClassification(models.Model):
vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE, default=None, null=True)
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
device_type = models.IntegerField()
device_name_regex = models.CharField(max_length=100)
vid_pid = models.CharField(max_length=50)
device_instance_id = models.CharField(max_length=100)
serial_number = models.CharField(max_length=100)
brand = models.CharField(max_length=25)
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
所以我会有一组分类,可以放入一个分类组中。
我如何在 django 模型中存储未知数量的外键?
请帮我解决这个问题。
ForeignKey通过向模型添加字段DeviceClassification:
class DeviceClassification(models.Model):
group = models.ForeignKey(DeviceClassificationGroup, on_delete=models.CASCADE, related_name='classifications')
Run Code Online (Sandbox Code Playgroud)
请记住,向模型添加外键会创建一对多关系,这意味着 1DeviceClassification属于1 DeviceClassificationGroup,并且 aDeviceClassificationGroup可以有多个 DeviceClassification与其关联的对象。
如果您现在想DeviceClassification从实例访问您的对象DeviceClassificationGroup:
group.classifications.all()
Run Code Online (Sandbox Code Playgroud)
related_name请注意,访问器与模型中指定的相同。
如果您不指定 a related_name,它将自动选择为<model_name>_set。如果您不需要相关名称,可以使用+。
文档:相关名称