简体   繁体   中英

Django Template Language Not Rendering

I am brand new to Django and following along with the tutorial. I'm hoping this is just an obvious mistake, but I am unable to get my web browser to render anything written in the Django template language and I can't figure out why.

Here is my directory structure for some context: 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)
]

budget/urls.py:

from django.urls import path

from . import views

urlpatterns = [
    path('<int:account_id>/', views.get_account, name='detail'),
]

budget/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)

budget/templates/budget/detail.html:

<p>This is a {{ context.test }}</p>

When I visit localhost:8000/budget/1 in my browser this is all that is rendered: https://imgur.com/j2Vh0yb

Clearly Django is finding the template file and sending it to the browser, but anything that is written inside of {} does not get recognized or rendered at all. I've followed along exactly with the tutorial and I have no idea why it's not working. Any ideas?

You don't need context in the expression in the template; all that you put in the context are "globals" in the template, so try

<p>This is a {{ test }}</p>

instead.

Django's template engine has the unfortunate property of being silent about nonexisting properties, so it's hard to debug stuff like this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM