您好,谢谢您的帮助,我的编程能力很差。
要指出的是:我正在做一个Django项目,该项目将数据从数据库传递到前端。但是现在我什至无法将Django的任何视图传递到模板中,我怀疑我传递了错误的变量类型。请对您的想法发表评论。
这是我在views.py上的代码:
from django.shortcuts import render
def index (requset):
return render(requset,'myapp/index.html') # link to be able open frountend
def testdex(requset):
text = "hello world"
context ={'mytext' : text }
return render(requset,'myapp/inculdes.html', context)
所以我的变量将被传递到incules并扩展到索引页
这是我在inculdes.html中的代码:
{% exntends "myapp/index.html" %}
{% block includes %}
{{ mytext }}
{% endblock includes %}
这是我在index.html上的代码:
<body>
{% block includes %} {% endblock includes %}
</body>
再次感谢您拨出我的时间来帮助我,感谢您能为我写一些代码,因为请尝试整周解决此问题
答案 0 :(得分:3)
您可以尝试这样的事情
views.py
from django.template.response import TemplateResponse
def testdex(requset, template_name="myapp/inculdes.html"):
args = {}
text = "hello world"
args['mytext'] = text
return TemplateResponse(request, template_name, args)
inculdes.html
{% extends "myapp/index.html" %}
{% block includes %}
{{ mytext }}
{% endblock includes %}
并确保已在 settings.py
中设置了模板的路径答案 1 :(得分:2)
我发现了为什么Django无法将变量传递给HTML的原因,因为;
我没有在视图中激活应用程序的功能
我为如此简单的错误感到尴尬。
我需要做的就是将此代码添加到我的应用程序网址中
urlpatterns = [
path('', views.timedex, name='timedex'), #need add this
path('', views.index, name='index'),
]
答案 2 :(得分:1)
在{%endblock包含%}之前添加{{block.super}}
答案 3 :(得分:0)
执行{% block content %}{% endblock content %}
时,您是在告诉Django您希望能够覆盖此部分。请注意,“内容”一词可以反映您要覆盖的内容。
当您执行{{ variable }}
时,您是在告诉Django您想要传递上下文。在此示例中,我要传递的变量称为“标题”作为键,“投资组合”作为值。上下文是您在 views.py 中传递的字典,如下所示:
def portfolio_home(request):
return render(request, 'portfolio/work.html', {'title': 'Portfolio'})
假设我要将上下文(或变量)传递到我的基本模板中。在此示例中,我想在基本模板的head部分的title标签中传递title。
在 base.html 的html文件中,您需要具有以下内容:
<!DOCTYPE html>
<html lang="en">
{% load staticfiles %}
<head>
<title>{{ title }}</title>
...........
</head>
</html>
在我的项目和要向其中传递标题的其他应用程序的urls.py中,我应该创建如下视图:
def portfolio_home(request):
return render(request, 'portfolio/work.html', {'title': 'Portfolio'})