Ich habe eine Liste von Umfragen (Fragen) und würde gerne prüfen, ob ein bestimmter User
über diese bestimmte Umfrage abgestimmt hat. Hier ist meine Modelle:Überprüfen, ob der Benutzer bei einer bestimmten Umfrage abgestimmt hat
class Question(models.Model):
has_answered = models.ManyToManyField(User)
question_text = models.CharField(max_length=80)
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=100)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
hier meiner Meinung nach ist, wenn ein Benutzer Stimmen für eine Umfrage:
def poll_answer(request):
if request.method == 'POST':
answer = request.POST.get('answer')
question = request.POST.get('question')
q = Question.objects.get(question_text=question)
choice = Choice.objects.get(id=answer)
choice.votes += 1
choice.save()
...
Ich habe ein ManyToMany
Feld in meinem Question
Modell hinzugefügt, die nach der docs lesen Ich glaube, das ist richtiger Weg, um die Liste der Benutzer zu verknüpfen, die über eine bestimmte Frage abgestimmt haben, aber ich bin mir nicht sicher, um ehrlich zu sein. Das Endziel ist, in meine Vorlage so etwas wie zu setzen: if request.user in question.has_answered: don't display the poll
Wie genau würde ich darüber gehen?