python-Django模型查询
我有两种型号:python-Django模型查询,python,django,django-models,Python,Django,Django Models,我有两种型号: class A(models.Model): a_id = models.CharField(max_length = 255, primary_key = True) destination = models.CharField(max_length = 255) class B(models.Model): a_id = models.ForeignKey('A', related_name = 'pptls') some_unique_va
class A(models.Model):
a_id = models.CharField(max_length = 255, primary_key = True)
destination = models.CharField(max_length = 255)
class B(models.Model):
a_id = models.ForeignKey('A', related_name = 'pptls')
some_unique_value = models.CharField(max_length = 255, unique = True)
我想从A
获取目的地,给定B
中的某些唯一值
这就是我目前所做的:-
a_id = B.objects.get(some_unique_value = "something").a_id
destination = A.objects.get(a_id = a_id).destination
虽然它会获取结果,但我想将其转换为单行查询,类似于SQL中的连接。如何执行此操作?您可以使用双下划线语法遍历关系:
destination = A.objects.get(b__some_unique_value="something").destination
这是一个很好的例子
(另外,请不要将您的ForeignKeys命名为“\u id”:它不代表一个id,它代表另一个类的实际对象。Django自动将“\u id”附加到底层数据库字段中。)Yaa,我知道我们不应该在FK中使用
\u id
,但我的代码就是这样构建的。我后来才知道。谢谢:)在b\u一些独特的值中b
是什么?这是你的名字吗?在我的例子中,哪个是pptls
?不,正如我链接到的文档中提到的,它是相关模型的小写名称。@DanielRoseman如何查询单个元素?假设在数据库userInfo中检查用户名的密码是否正确?SQL:从userinfo中选择密码,其中password='mypassword'