django значение таблицы моделей не отображается в html - PullRequest
0 голосов
/ 07 мая 2020

Я создал приложение django, ответы на которое сохраняются в базе данных с именем пользователя и даны ответы пользователем. Какие изменения я должен внести в views.py для отображения значений на странице html с именем x. html

models.py

class Quizz(models.Model):
    name = models.CharField(max_length=50,default='')
    ans1=models.CharField(max_length=20,default='')
    ans2=models.CharField(max_length=20,default='')
    ans3=models.CharField(max_length=20,default='')

views.py

def Index(request):
    if request.method=='POST':
        username=request.POST['username']
        password=request.POST['password']
        x=authenticate(username=username,password=password)
        if x is not None:
            login(request,x)
            return render(request,'x.html')
        else:

            return redirect('home')
    else:
        return render(request,'index.html')



def test(request):
    if request.method=='POST':
        name = request.POST['name']
        ans1=request.POST['sky']
        ans2=request.POST['cricket']
        ans3=request.POST['river']
        x=Quizz.objects.create(name=name,ans1=ans1,ans2=ans2,ans3=ans3)
        x.save()
        return redirect('test.html')
    return render(request,'test.html')

html шаблон

 {{quizz.ans1}}

1 Ответ

0 голосов
/ 07 мая 2020

Для визуализации значений из модели вам необходимо предоставить данные модели в параметре context функции визуализации. Параметр context - это словарь, который сообщает Django, что поместить в файл HTML. Прямо сейчас вы возвращаете render(request,'x.html'), который отображает x. html без контекста. Итак, вам нужно добавить контекст к функции рендеринга (т.е. что такое тест). Из вашего кода мне неясно, какой вопрос вы хотите отобразить в своем файле x. html.

Простым примером может быть:

question = Quizz.objects.all().first() # Gets the first Quizz object (replace with any other method of obtaining a question)
return render(request, 'x.html', {'quizz': question})
...