Я новичок в Django, и у меня есть проблема, которую я не смог решить. Я пытаюсь отобразить определенный c вопрос и другие связанные атрибуты из моей модели Вопросов на основе поля из модели Участника. Проблема здесь в том, что он напрямую переходит к оператору else, даже когда условие истинно. Я пытался напечатать (member.condition), и он работает, поэтому я не уверен, почему он не работает с оператором if.
@login_required
def LPSC_VIEW1(request):
participant=request.user.participant
if participant.condition == 'LPN':
First_question= Question.objects.get(id=1)
all_choices = First_question.choices.all()
context = {'First_question': First_question, 'all_choices': all_choices}
return render(request, 'study/FirstQN.html', context)
else:
First_question= Question.objects.get(id=12)
all_choices = First_question.choices.all()
context = {'First_question': First_question, 'all_choices': all_choices}
return render(request, 'study/FirstQSC.html', context)
мои модели как следующие:
class Question(models.Model):
question_text = models.CharField(max_length=200)
caption = models.CharField(max_length=200, default="this is a caption")
choices = models.ManyToManyField(Choice)
vis_image = models.ImageField(default= "this is an image", null=False, blank=False, upload_to="static/study/img")
def __str__(self):
return self.question_text
class Condition(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Participant(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
condition = models.ForeignKey(Condition, on_delete=models.CASCADE)
score = models.IntegerField(default=0)
def __str__(self):
return self.user.username