为了简单起见,我减少了代码以显示两个模型。我对 Django 非常陌生,已经第二次遵循该教程,但创建了自己的模型。
class Products(models.Model):
product_name = models.CharField(max_length=50,unique=True,null=False)
def __str__(self):
return self.product_name
class Current_tests(models.Model):
product = models.ForeignKey(Products, on_delete=models.CASCADE)
no_samples = models.IntegerField(default=0)
stagecode=models.CharField(max_length=30,default="UPDATE REQUIRED")
def __str__(self):
return self.stagecode
我遇到的问题是如何在当前测试中使用外键访问产品模型中的数据。例如,我可能希望将产品名称与特定的 Current_test 数据行 ID 关联,或者根据阶段代码值查找产品名称。
同样,如何获取给定产品名称的所有阶段代码。
在教程上是这样完成的:
q = Question.objects.get(pk=1)
# Display any choices from the related object set -- none so far.
>>> q.choice_set.all()
<QuerySet []>
https://docs.djangoproject.com/en/5.1/intro/tutorial02/
当我交换我的类时,我收到“AttributeError:'Current_tests'对象没有属性'product_name_set'。
我在这里查看了许多建议使用“相关名称”、“过滤器”的问题,但我无法访问数据。
谢谢
通过异物过滤,需要“__”。使用'_'是找不到异物。
# call foreign object
a = Current_tests.object.get({some code})
b = a.poduct
# filter by foreign object
a = Current_tests.object.get(product__name='{some name}')
b = a.poduct