如何使用ID的Django比较模型

时间:2018-10-18 22:40:36

标签: python django

任何人都可以帮助解决以下问题吗?

假设我有一个名为Answer的模型和一个名为CheckAnswer的用户输入表单。

我想要的是,当特定的Question页是开放式的并且用户键入答案时,应该使用相应的答案进行检查 可以使用id访问模型的答案。但是我如何指定打开的问题页面的ID并将其链接到答案ID。 以下是附加的代码 forms.py

from django import forms
from .models import Answer
from django.core.exceptions import ObjectDoesNotExist

class CheckAnswer(forms.Form):
    your_answer=forms.CharField(label='Answer')
    def clean(self):
        cleaned_data=super(CheckAnswer,self).clean()
        response=cleaned_data.get("your_answer")

        try:
            p = Answer.objects.get(id=1,answer__iexact=response)
        except Answer.DoesNotExist:
            raise forms.ValidationError("Wrong Answer.")

views.py

from django.shortcuts import render,redirect
from django.views.generic import *
from . import models
from django import forms
from .forms import CheckAnswer
from django.contrib.auth.decorators import login_required
# Create your views here.
@login_required
def Arena1(request):
    if request.method=='POST':
        form = CheckAnswer(request.POST)
        if form.is_valid():
            return redirect('thanks')
    else:
        form=CheckAnswer()
    return render(request,'levels/arena1.html',{'form':form})

models.py

from django.db import models
from django.contrib.auth import get_user_model
User=get_user_model()
users=User.objects.all()
# Create your models here.
class Answer(models.Model):
    name=models.CharField(max_length=10,unique=True)
    answer=models.CharField(max_length=100)

    def __str__(self):
        return self.name

    class Meta:
        ordering= ["-name"]

0 个答案:

没有答案