【问题标题】:Django models filter query not recognising fieldDjango模型过滤查询不识别字段
【发布时间】:2021-08-05 12:20:32
【问题描述】:

我在做一个 Django 项目,过滤查询功能没有按预期工作

我导入了模型,进行了迁移 不明白代码哪里错了,无法识别字段(评分)

我创建的模型

class Problem(models.Model):
    contestID = models.IntegerField()
    index = models.CharField(max_length=5)
    name = models.CharField(max_length=50)
    rating = models.IntegerField(default=0)
    link = models.URLField(max_length=200)
    tags = models.ManyToManyField(Tag,blank=True,related_name="Problme")

我在视图中的代码:(object.all() 工作正常但过滤器不工作)

def fetchProblems(min = 0, max = 5000, filter = False):

    if not filter:
        problemSet = Problem.objects.all().values()
    else:
        problems = Problem.objects.filter(rating < max,rating > min)

        
    return problemSet

我的错误:(评级未定义)(基本上我尝试了所有未定义的字段)

NameError: name 'rating' is not defined

感谢您的帮助

【问题讨论】:

标签: python-3.x django django-models django-queryset


【解决方案1】:

正确的语法是

.filter(rating__gt=min)

您可以在https://docs.djangoproject.com/en/3.2/topics/db/queries/#field-lookups 上找到有关各种查找类型(由双下划线分隔)的更多信息

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 2018-09-01
    • 2013-10-10
    • 1970-01-01
    • 2020-05-07
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多