data/content 未显示。任何人都可以让我知道任何必要的更改以呈现数据吗?
The data/content isn't getting displayed. Can anyone please let me know any necessary changes to render the data?
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
table 不为空并且问题真的出在这里吗?检查是否使用 python manage.py shell
和 运行 Question.objects.all()
在 shell 中(或使用像 DBeaver 这样的数据库可视化工具),
- 尝试在 HTML 文件的
for
循环之外的行 {% block content %}
下可视化 {{ question_list }}
:它显示任何内容吗?
- 避免使用关键字
data
来迭代 question_list
,我想知道这个变量名称是否不能在您的页面的 context
中使用,因为它是一个非常通用的关键字。选择更明确的东西,比如“问题”,它会更清楚并减少冲突的风险:
{% for question in question_list %}
...
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
table 不为空并且问题真的出在这里吗?检查是否使用python manage.py shell
和 运行Question.objects.all()
在 shell 中(或使用像 DBeaver 这样的数据库可视化工具), - 尝试在 HTML 文件的
for
循环之外的行{% block content %}
下可视化{{ question_list }}
:它显示任何内容吗? - 避免使用关键字
data
来迭代question_list
,我想知道这个变量名称是否不能在您的页面的context
中使用,因为它是一个非常通用的关键字。选择更明确的东西,比如“问题”,它会更清楚并减少冲突的风险:
{% for question in question_list %}
...