【问题标题】:less than or equal to 0 - is not showing posts which have 0 votes小于或等于 0 - 不显示有 0 票的帖子
【发布时间】:2021-09-05 14:20:29
【问题描述】:

我正在构建一个简单的问答网站,我正在尝试访问投票小于或等于 0 的答案。

我有三个没有投票的答案,但它没有显示在queryset

我应该给我看三个零票的帖子,但它显示的是 0。

models.py

class Answer(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    body = models.CharField(max_length=3000)
    likes = models.ManyToManyField(User, related_name='likes', blank=True)

views.py

def answers(request):
    answers = Answer.objects.filter(likes__lte=0).count()

    context = {'answers':answers}
    return render(request, 'answers.html', context}

当我删除.count() 时,它会显示<QuerySet []>

我尝试了很多次,但它仍然显示0 0 票的帖子。

当我将其设置为lte=1 时,它会显示喜欢 1 但不小于 0 的帖子。

编辑 1:-

当我根据以下答案尝试时:-

answers = Answer.objects.filter(likes__level__lte=0).count()

然后一直显示

相关字段的查找无效:​​级别

【问题讨论】:

    标签: python django django-models django-views


    【解决方案1】:

    试试这样的兄弟

    def answers(request):
       answers = Answer.objects.filter(likes__level__lte=0).count()
    
       context = {'answers':answers}
       return render(request, 'answers.html',context} 
    

    同样,lt 表示小于,gt 表示大于。

    供进一步参考https://docs.djangoproject.com/en/3.2/ref/models/querysets/

    编辑

    level 将是模型用户中的字段名称。

    【讨论】:

    • 显示Related Field got invalid lookup: level
    • 您好抱歉回复晚了 什么是 django 版本?
    • Django 版本是3.2.6,现在我解决了,
    • 哦,太好了,你是怎么解决的?请分享你的答案
    • 你能分享一下docs link,其中有任何地方写过级别查找吗?我在您在答案中提供的link 中没有找到它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多