Python Django-使用外键从另一个模型引用数据
我是Django的新手,所以请告诉我我是否在正确的轨道上。 我正在构建一个Django项目,我只是想问一下,从一个模型中检索数据并在另一个模型中使用它的正确Django方法是什么 我有一个for循环将所需的字段分配给变量,但我正在寻找一个更干净的解决方案,如果存在,则使用外键 下面是一个涉及的代码示例:Python Django-使用外键从另一个模型引用数据,python,django,Python,Django,我是Django的新手,所以请告诉我我是否在正确的轨道上。 我正在构建一个Django项目,我只是想问一下,从一个模型中检索数据并在另一个模型中使用它的正确Django方法是什么 我有一个for循环将所需的字段分配给变量,但我正在寻找一个更干净的解决方案,如果存在,则使用外键 下面是一个涉及的代码示例: #MODELS class Class1(models.Model): tag_number = models.CharField(max_length = 300, null = T
#MODELS
class Class1(models.Model):
tag_number = models.CharField(max_length = 300, null = True, blank = True)
example1 = models.CharField(max_length = 300, null = True, blank = True)
example2 = models.CharField(max_length = 300, null = True, blank = True)
class Class2(models.Model):
tag = models.ForeignKey(Class1, related_name = 'tag_foreignkey')
example3 = models.CharField(max_length = 300, null = True, blank = True)
example4 = models.CharField(max_length = 300, null = True, blank = True)
#VIEWS - This view is for Class2 but referencing fields from Class1
tag_number = str(instrumentform.cleaned_data['tag'])
query_results = Class1.objects.filter(tag_number = tag_number)
for query_result in query_results:
example5 = query_result.example1
example6 = query_result.example2
上述方法可以工作,但我认为这不是Django的工作方式,也没有利用外键
如果有人能给我一个正确的方向,我将不胜感激。我不知道你在这里想要实现什么。我在想象PstCalc=Class1 然而,如果你有
c1 = Class1()
c2 = Class2()
c3 = Class2()
and
c2.tag = c1
c3.tag = c1
使用foreignkey,您将拥有:
c1.class2_set = (c2, c3) <- this would be a queryset, not a list
c2.tag = c1 => c2.tag.example1 = c1.example1
c1.class2\u set=(c2,c3)c2.tag.example1=c1.example1
…希望我能让自己明白:)不过,还是不能百分之百地知道你想要什么,因为有一些信息不见了。 对于Class1,您应该像对待Class2一样,使用外键来存储标记 对于底部的代码,有一种简单的方法。(假设您使用了外键)
我想你可能正在Django寻找很多关系。请查看文档:
tag_number = int(instrumentform.cleaned_data['tag'])
for query_result in Class1.objects.filter(tag = tag_number).values_list('example1', 'exmaple2'):
example5, example6 = query_result