代码之家  ›  专栏  ›  技术社区  ›  Moinuddin Girach

Django从子查询父对象

  •  0
  • Moinuddin Girach  · 技术社区  · 4 年前

    我是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)
    

    我想对类B进行查询,其中当前时间介于model_a.from_time和model_a.to_time之间。为此,我试过了

    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 "=="?

    1 回复  |  直到 4 年前
        1
  •  2
  •   iklinac    4 年前

    您使用了错误的语法来跨越 relationship

    B.objects.filter(model_c__id=model_c_id, model_a__to_time__gte=start_date, model_a__to_time__lte=end_date)