我想检查一页练习的 id 是否在solvedExercises 的数组中。我认为使用 contains_by 可能很容易做到这一点,但它不起作用。
我试过这条线(但我也想随机化问题)
randomQuestions = Exercises.objects.filter(id__contained_by=(req.user.profile.exercitiiProvocari).order_by("?")
但它不起作用。我收到此错误:
Unsupported lookup 'contained_by' for AutoField or join on the field not permitted, perhaps you meant contains or icontains?
我想这个错误来自于 ID 是 django 自动生成的字段,但我不知道如何修复它。
视图.py
from django.shortcuts import render
from exercitii.models import Exercises
# Create your views here.
def index(req):
return render(req, "../templates/pagini/provocari.html")
def provocari(req):
randomQuestions = Exercises.objects.filter(id__contained_by=(req.user.profile.exercitiiProvocari).order_by("?")
print(randomQuestions)
return render(req, "../templates/pagini/provocare.html")
练习模型
from django.db import models
from django.contrib.postgres.fields import ArrayField
from lectii.models import Lectie
# Create your models here.
class Exercises(models.Model):
idLectie = models.ForeignKey(Lectie, on_delete=models.DO_NOTHING, blank=True, null=True)
intrebare = models.CharField(max_length = 300)
variante = ArrayField(models.CharField(max_length=300), null=True)
variantaCorecta = models.CharField(max_length = 1)
def __str__(self):
return self.intrebare
所以我实际上正在做的是尝试将所有练习的数组与一个具有已解决练习的 ID 的练习区分开来,并将结果随机化。
但是当我试图做出改变时,我得到了那个错误。