如何将Django模板连接到html超链接



[1]例如,我有这样的html页面(主页([1] :https://i.stack.imgur.com/PJlbd.png

还有三个超链接标签,我想在点击每个标签时为它生成一些模板。例如,如果";家;点击后,我将生成与我博客所有帖子模板相同的页面。如果单击"创建",我将使用另一个模板生成相同的页面,该模板包含用于创建帖子的表单。这是我主页的代码

<body>
<div class="left-menu">
<img src="/static/POST PROJECT.png" class="logo" alt="">
<ul class="left-ul">
<li class="left-li">
<a href="{% url 'main'%}">Home</a>
</li>
<li class="left-li">
<a href="{% url 'main'%}">Create</a>
</li>
<li class="left-li">
<a href="{% url 'main'%}">Find</a>
</li>
</ul>
</div>
<div class="main">
{% block content %}
{% endblock %}
</div>
</body>

我的urls.py

urlpatterns = [
path('', views.main, name='main')
]

这是我的视图。py

def main(request):
return render(request, "index.html", {})

您只需使用context即可。您已经在传递它,但它只是一个空的dict。一种方法是修改main视图以接受一个slug,并根据该slug的值执行某些操作。


urls.py

urlpatterns = [
path('/<str:slug>', views.main, name='main')
]

视图.py

def main(request, slug):
context = {}
if slug == "home":
posts = # query all your posts here
context["posts"] = posts
elif slug == "create":
form # create the form instance here
context["create_form"] = form
elif slug == "somethingelse":
somethingelse = # do something else
context["somethingelse"] = somethingelse
return render(request, "index.html", context)

index.html

<div class="left-menu">
<img src="/static/POST PROJECT.png" class="logo" alt="">
<ul class="left-ul">
<li class="left-li">
<a href="{% url 'main' slug='home' %}">Home</a>
</li>
<li class="left-li">
<a href="{% url 'main' slug='create' %}">Create</a>
</li>
<li class="left-li">
<a href="{% url 'main' slug='find' %}">Find</a>
</li>
</ul>
</div>
<div class="main">
{% block content %}
{% endblock %}
</div>

最新更新