Python 检查查询是否不存在或是否具有特定值
例如,我们有一个示例模型,我们希望执行以下操作:Python 检查查询是否不存在或是否具有特定值,python,django,django-models,django-views,Python,Django,Django Models,Django Views,例如,我们有一个示例模型,我们希望执行以下操作: ex = Example.objects.filter(Q(participant__tries=0) | Q(participant__tries=*THERE IS NO EXAMPLE RECORD*), courses=course) 我的意思是数据库中没有记录,没有记录,并且是空的。还有一个queryset永远不会返回任何对象 我们应该在两颗星之间替换什么 附件: 我自己的模型 取决于模型/架构的设置方式。您可能需要提供其他详细信息
ex = Example.objects.filter(Q(participant__tries=0) | Q(participant__tries=*THERE IS NO EXAMPLE RECORD*), courses=course)
我的意思是数据库中没有记录,没有记录,并且是空的。还有一个queryset永远不会返回任何对象 我们应该在两颗星之间替换什么 附件: 我自己的模型
取决于模型/架构的设置方式。您可能需要提供其他详细信息
在许多情况下,
isnull
将起作用。例如,Q(参与者尝试\uuuu isnull=True)
。请参阅。我的意思是数据库中没有记录,没有记录,并且为空。还有一个queryset永远不会返回任何对象。(由于生成的内部联接的行为)对不起。也许我是误会了。你能在问题中添加相关的模型定义吗?我最近修改了它。你是指没有链接到参与者的示例吗?我相信这样的记录不会包括在queryset中
class Questions(models.Model):
course = models.ForeignKey(Course, blank=False, db_index=True)
question_author = models.ForeignKey(Author, blank=False)
number = models.IntegerField(default=0, editable=False, help_text="<b>***Please Don't change it as much as possible!</b>")
question_details = models.CharField(max_length=100, blank=False, default='')
members = models.ManyToManyField(User, through='QuestionsParticipant')
question_type = models.CharField(choices=question_types, max_length=1, default='1')
own_score = models.PositiveIntegerField(default=10)
approved = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True)
class QuestionsParticipant(models.Model):
question = models.ForeignKey(Questions)
participant = models.ForeignKey(User)
tries = models.PositiveIntegerField(blank=False, default=0)
flag = models.BooleanField(default=False)
flag_reason = models.CharField(max_length=50, blank=True, default='')
success = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True)
question = Questions.objects.filter(Q(questionsparticipant__tries=0) | Q(questionsparticipant__tries__isnull=True),
Q(questionsparticipant__participant_id=request.user.id)
| Q(questionsparticipant__participant_id__isnull=True),
course=courses, approved=True).order_by("number")[0]