【问题标题】:How do I query dynamically(?) in Django? [duplicate]如何在 Django 中动态查询(?)? [复制]
【发布时间】:2021-01-23 04:54:13
【问题描述】:

我不确定标题是否有意义,所以让我详细说明一下。
所以在我的 Django 项目中,每个用户都有自己的随机整数列表,如下所示:numList = [1, 3, 4, 8, 10]

我有一个模型名称问题,看起来像这样:

class Question(models.Model):
    question_number = models.IntegerField(primary_key=True)
    title = models.CharField(max_length = 20, default="")
    # And so on

现在我想查询与我的 views.py 中列表中的数字相匹配的 Question 对象。

def getQuestions(request):
    numList = [2, 3, 4, 1, 8] # this list contains random integers every time the function is called.
    
    questionsList = []
    for i in range(0, len(numList)):
        eachQuestion = Question.objects.filter(question_number=numList[i])
        questionsList.append(eachQuestion.values())
        i = i + 1

    # And so on

这是我所知道的。这实际上是不合适的,因为我想要的是查询集,而不是列表。如何获取与numList 中的数字匹配的问题的查询集?
非常感谢您。

【问题讨论】:

    标签: python django


    【解决方案1】:

    您可以使用__in 查找来过滤出现在numList 中的question_numbers

    def getQuestions(request):
        numList = [2, 3, 4, 1, 8]
        
        return Question.objects.filter(question_number__in=numList)
    

    【讨论】:

      【解决方案2】:

      在您的情况下,您可以使用Question.objects.filter(question_number__in=numList)

      你可以阅读__in过滤器 - https://docs.djangoproject.com/en/3.1/ref/models/querysets/#in

      【讨论】:

        猜你喜欢
        • 2010-11-16
        • 2016-12-28
        • 2015-06-20
        • 2010-09-26
        • 1970-01-01
        • 1970-01-01
        • 2020-11-13
        • 2010-10-25
        相关资源
        最近更新 更多