Django:[0, 1]基数的一对多关系
Django: One-to-many relation for [0, 1] cardinality
假设有两个模型:
class Service(models.Model):
key_service_name = models.ForeignKey(Key_service_type, related_name='Service_key_service_names', null=False)
service_hourly_wage_rate = models.DecimalField(max_digits=5, decimal_places=2, null=True)
service_amount = models.DecimalField(max_digits=7, decimal_places=2, null=True)
class ServiceAdditionalInfo(models.Model):
service = models.ForeignKey(Service, related_name='Service_additional_info_services', null=False)
fixed_price = models.DecimalField(max_digits=8, decimal_places=2, null=True)
除其他信息外,服务 class 序列化程序具有以下字段描述:
service_additional_info = ServiceAdditionalInfoSerializer(read_only = True, many=False, source = 'Service_additional_info_services')
实际上,一个服务实例可能被 0 个或 1 个 ServiceAdditionalInfo 实例引用。
可以理解,序列化程序 return 是一个列表,而我肯定更喜欢字典。
我的问题:这是对关系建模的推荐方式吗?
如果是这样,是否有 django 内置机制来 return 对这种情况的命令?
对于后一种情况,我知道如何解决该问题,但由于我想以预期的方式使用该框架,我很好奇是否遗漏了有关建模和序列化程序的内容。
替换您的外键
A one-to-one relationship. Conceptually, this is similar to a
ForeignKey with unique=True, but the “reverse” side of the relation
will directly return a single object.
当只有一个或零个对象相互关联时,这是映射关系的首选方式。
至于生成包含来自两个模型的数据的单个字典,您将需要对模型序列化程序进行子类化。
假设有两个模型:
class Service(models.Model):
key_service_name = models.ForeignKey(Key_service_type, related_name='Service_key_service_names', null=False)
service_hourly_wage_rate = models.DecimalField(max_digits=5, decimal_places=2, null=True)
service_amount = models.DecimalField(max_digits=7, decimal_places=2, null=True)
class ServiceAdditionalInfo(models.Model):
service = models.ForeignKey(Service, related_name='Service_additional_info_services', null=False)
fixed_price = models.DecimalField(max_digits=8, decimal_places=2, null=True)
除其他信息外,服务 class 序列化程序具有以下字段描述:
service_additional_info = ServiceAdditionalInfoSerializer(read_only = True, many=False, source = 'Service_additional_info_services')
实际上,一个服务实例可能被 0 个或 1 个 ServiceAdditionalInfo 实例引用。 可以理解,序列化程序 return 是一个列表,而我肯定更喜欢字典。
我的问题:这是对关系建模的推荐方式吗? 如果是这样,是否有 django 内置机制来 return 对这种情况的命令?
对于后一种情况,我知道如何解决该问题,但由于我想以预期的方式使用该框架,我很好奇是否遗漏了有关建模和序列化程序的内容。
A one-to-one relationship. Conceptually, this is similar to a ForeignKey with unique=True, but the “reverse” side of the relation will directly return a single object.
当只有一个或零个对象相互关联时,这是映射关系的首选方式。
至于生成包含来自两个模型的数据的单个字典,您将需要对模型序列化程序进行子类化。