Django从子代查询父代

问题描述 投票:1回答:1

我是Python Django的新手,我想进行查询

class A(models.Model):
    foo = models.IntegerField(default=0)
    from_time = models.DateTimeField('start time')
    to_time = models.DateTimeField('end time')

class B(models.Model):
    model_a = models.ForeignKey(A, on_delete=models.PROTECT, related_name='model_a')
    model_c = models.ForeignKey(C, on_delete=models.PROTECT, related_name='model_c')

class C(models.Model):
    id = models.IntegerField(default=0)
    name = models.CharField(max_length = 20)

我想查询当前时间在model_a.from_time和model_a.to_time之间的B类。为此,我尝试过

B.objects.filter(model_c=model_c_id, model_a.to_time__gte=start_date, model_a.to_time__lte=end_date)

它给我语法错误SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

python django python-3.x
1个回答
2
投票

您使用错误的语法来扩展relationship

B.objects.filter(model_c__id=model_c_id, model_a__to_time__gte=start_date, model_a__to_time__lte=end_date)
© www.soinside.com 2019 - 2024. All rights reserved.