【发布时间】:2019-08-01 03:16:35
【问题描述】:
我是 Django 的新手,并按照教程进行操作。我希望这只是一个明显的错误,但我无法让我的网络浏览器呈现用 Django 模板语言编写的任何内容,我不知道为什么。
这是我在某些上下文中的目录结构:https://imgur.com/dGNIiDa
project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('budget/', include('budget.urls')),
path('admin/', admin.site.urls)
]
预算/urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('<int:account_id>/', views.get_account, name='detail'),
]
预算/views.py:
from django.shortcuts import render
from django.http import HttpResponse
from budget.models import Account, Transaction
def get_account(request, account_id):
accts = Account.objects.filter(pk=account_id)
context = {"test": accts}
return render(request, 'budget/detail.html', context)
预算/模板/预算/detail.html:
<p>This is a {{ context.test }}</p>
当我在浏览器中访问 localhost:8000/budget/1 时,会呈现以下内容:https://imgur.com/j2Vh0yb
很明显 Django 正在查找模板文件并将其发送到浏览器,但在 {} 中写入的任何内容都不会被识别或呈现。我已经完全按照教程进行操作,但我不知道为什么它不起作用。有什么想法吗?
【问题讨论】:
-
在您的模板中应该是
<p>This is a {{ test }}</p>。名称context在您的模板中未定义。它只是您视图中字典的变量名。 -
你试过只
<p>This is a {{ test }}</p>,没有context吗?