【问题标题】:Dynamic Templates in Django ViewsDjango 视图中的动态模板
【发布时间】:2021-07-26 00:24:28
【问题描述】:

我想知道是否可以将模板名称从urls.py 动态插入到 Django 视图中。

也就是说,假设我有一个应用程序,其全部目的是充当各种静态登录页面的容器。计划是创建这个应用程序,并在其urls.py 中设置各种条目,对应到各种登录页面的路径。每个页面都会有一个单独的.html 与之对应。

问题是,是否可以只为所有这些模板编写一个(基于类或其他)视图,还是每个页面都需要一个视图?

Django 版本 2.1-2.2

附:如果有另一种简洁的方式来完成类似的事情,我会全力以赴。

【问题讨论】:

  • 在基于类的视图中,您可以覆盖 get_template_names 方法

标签: django django-views django-urls


【解决方案1】:

这可以通过 URL 中的变量和基于简单函数的视图来实现

urls.py

from django.urls import path
from .views import landing_page_view

urlpatterns = [
    path('<slug:template_name>/', landing_page_view, name='landing_page_view'), # Your urls will be <host>/template_name
]

views.py

from django.shortcuts import render

def landing_page_view(request, template_name):
    return render(request, f'{template_name}.html') # Render view with the template corresponding with the template_name in the url 

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 2012-07-08
    • 2020-04-11
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2012-05-26
    • 2023-03-07
    相关资源
    最近更新 更多