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'