Данные/контент не отображаются. Может ли кто-нибудь сообщить мне о необходимых изменениях для отображения данных?
Models.py
class Question(models.Model):
# id = models.AutoField(primary_key=True)
question=models.CharField(max_length=600)
option1=models.CharField(max_length=200, default=None)
option2=models.CharField(max_length=200, default=None)
option3=models.CharField(max_length=200, default=None)
option4=models.CharField(max_length=200, default=None)
views.py
def Practice_all(request):
practice = Question.objects.all()
context={ 'question_list': practice }
return render(request, 'practice.html', context)
urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("practice/", views.Practice_all, name="practice"),
]
practice.html
{% extends 'base.html' %}
{% block content %}
{% for data in question_list %}
<li> {{ data.option1 }} </li>
<li> {{ data.option2 }} </li>
<li> {{ data.option3 }} </li>
{% endfor %}
{% endblock %}
Вот файлы Django, которые я использую, сервер работает отлично, но не отображает ничего, даже никаких ошибок, просто пусто. Есть предложения?
Несколько советов по отладке:
- Вы уверены, что таблица
Questionв вашей базе данных не пуста и что проблема действительно возникает отсюда? Проверьте это, используяpython manage.py shellи запустивQuestion.objects.all()в оболочке (или используйте визуализатор базы данных, например DBeaver), .
- Попробуйте визуализировать
{{ question_list }}под строкой{% block content %}, вне циклаforв вашем HTML файле: отображает ли он что-нибудь? - Избегайте использования ключевого слова
dataдля итерацииquestion_list, интересно, не могло ли это имя переменной уже использоваться вcontextвашей страницы, поскольку это очень общее ключевое слово. Выберите что-нибудь более явное, например "вопрос", это будет понятнее и снизит риск конфликта:
{% for question in question_list %}
...