如何在不通过Django中的外部对象的情况下通过ForeignKey的db_column字段进行过滤

时间:2011-02-25 04:41:03

标签: python django-models django-queryset

我有一个带有非django命名约定的遗留数据库。如果我有以下(减少)模型:

class Registration(models.Model):
    projectId=models.IntegerField(primary_key=True)

class Application(models.Model):
    applicationId=models.IntegerField(primary_key=True)
    registration=models.ForeignKey(Registration,db_column='projectId')

ForeignKey实例导致在名为Application的{​​{1}}上创建一个属性,但这不是该字段的正确名称(我有一个修复此问题的黑客),也没有是否可以在registration_id中使用。

是否有某种方法可以在Application模型上使用ForeignKey提供的id字段,而不必通过注册引用它?


IE浏览器。我写了很多代码,如:

QuerySet


并且不想把它写成:

Application.objects.get(projectId=1234)

甚至

Application.objects.get(registration__projectId=1234)


我有点惊讶:

Application.objects.get(registration__pk=1234)

不起作用......


另请注意,我尝试将id列定义为字段以及用于查询集的外键,但是插入抱怨尝试两次插入同一列:

Application.objects.get(registration_id=1234)

2 个答案:

答案 0 :(得分:0)

我认为只做Application.objects.registration.get(projectId=1234)就应该做你想做的事。

答案 1 :(得分:0)

你试过这个吗?

Application.objects.get(registration=1234)