gpt4 book ai didi

python - 如何在 django 中从父模型访问子模型数据

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:30 24 4
gpt4 key购买 nike

我有这些模型

class Product(models.Model):
product_id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=255, null = False, unique=True)
product_title = models.CharField(max_length=255, null = True)
product_price = models.CharField(max_length = 255)
brand = models.ForeignKey(Brand, on_delete=models.SET_NULL, null=True)
product_type = models.ForeignKey(Product_type, on_delete=models.SET_NULL, null=True)

class Feature(models.Model):
feature_id = models.AutoField(primary_key=True)
feature_name = models.CharField(max_length=255, null = False)
product_type = models.ForeignKey(Product_type, on_delete=models.SET_NULL, null=True)
feature_has_value = models.CharField(choices=has_value_choice, max_length = 1, null = False)

class Product_feature(models.Model):
product_feature_id = models.AutoField(primary_key=True)
feature = models.ForeignKey(Feature, on_delete=models.SET_NULL, null=True)
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True, related_name='product_feature')
product_feature_value = models.CharField(max_length=255, null = False)

现在,我如何从产品模型中获取product_features?我想这样查询

SELECT p.*, f.* from product p, product_feature f where f.product_id = p.product_id ORDER BY P.product_type_id

最佳答案

您可以通过Django自动建立的反向关系来获取Product_feature,并以正向关系的lated_name命名。

因此,您可以通过以下方式获取 Product_feature 对象的 QuerySet:

myproduct<b>.product_feature.all()</b>

话虽如此,通常 ForeignKey 字段的相关名称应该是复数,因为它是一个集合。因此,我建议将您的 lated_name='product_feature' 重命名为 lated_name='product_features'

进一步根据PEP-8 ,类名以 CamelCase 格式编写,因此是 ProductFeature,而不是 Product_feature

关于python - 如何在 django 中从父模型访问子模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60351425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com