首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果没有指定模板名称,Django如何为CreateView选择模板名称

在Django中,如果没有指定模板名称,CreateView会根据约定自动选择模板名称。它会根据模型的名称和视图的名称来生成默认的模板名称。

具体来说,Django会将模型的名称转换为小写,并在其后加上"_form"作为模板名称的一部分。然后,它会根据视图的名称来确定模板所在的目录。例如,如果模型的名称是"Book",视图的名称是"Create",那么默认的模板名称将是"book_form.html"。

Django会在应用程序的模板目录中搜索该模板名称。默认情况下,Django会在每个应用程序的"templates"目录下查找模板。如果找到了匹配的模板,CreateView将使用该模板进行渲染。

如果没有找到匹配的模板,可以通过在视图类中设置"template_name"属性来手动指定模板名称。例如:

代码语言:txt
复制
from django.views.generic import CreateView
from myapp.models import Book

class BookCreateView(CreateView):
    model = Book
    template_name = "myapp/custom_book_form.html"

在上面的示例中,我们手动指定了模板名称为"myapp/custom_book_form.html",而不是使用默认的模板名称。

总结起来,如果没有指定模板名称,Django的CreateView会根据约定自动选择模板名称,将模型名称转换为小写并在其后加上"_form"作为模板名称的一部分,然后根据视图的名称确定模板所在的目录。如果找到匹配的模板,将使用该模板进行渲染。如果没有找到匹配的模板,可以通过设置"template_name"属性手动指定模板名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django内置的通用类视图及实例

属性: model: 指定模型 tempalta_name:模板文件 queryset:指定一个经过过滤的对象列表,将取代model提供的值 context_object_name: 指定要在上下文中使用的变量的名称...: 指定在上下文中使用的变量的名称. pk_url_kwarg: URLconf中,包含逐渐的关键字参数的名称.默认为'pk'. get_context_data:返回显示对象的上下文数据....参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slug...可以直接用Django通用视图里的UpdateView和CreateView。...因为编辑和新增页面的前端代码基本一样,我们在这里都指定了template为update_form。也可指定不同的模板。另外也可用template_name_suffix参数去指定模板

2.9K40

Django内置的通用类视图CBV及示例

属性: model: 指定模型 tempalta_name:模板文件 queryset:指定一个经过过滤的对象列表,将取代model提供的值 context_object_name: 指定要在上下文中使用的变量的名称...: 指定在上下文中使用的变量的名称. pk_url_kwarg: URLconf中,包含逐渐的关键字参数的名称.默认为'pk'. get_context_data:返回显示对象的上下文数据....参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slug...可以直接用Django通用视图里的UpdateView和CreateView。...因为编辑和新增页面的前端代码基本一样,我们在这里都指定了template为update_form。也可指定不同的模板。另外也可用template_name_suffix参数去指定模板

3.2K10
  • django中ModelForm多表单组合的解决方案

    def __str__(self):           return self.as_table()          #如果模板中不想写重复代码,只以固定的格式来显示每一个field,那么就用...3、通用视图 django.views.generic.ListView和django.views.generic.edit下的CreateView, UpdateView, DeleteView都是通用视图...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表中...FormMixin允许处理表单,可指定form_class为某个表单。...所以,在用CreateView、一个模型、一个模板实现添加一行记录的功能时是多么简单,因为这些父类会自动生成object,渲染到模板,解析form表单,save到数据库中。

    3.4K20

    Django模板中使用消息message框架

    模板设置中定义的DjangoTemplates的context_processor选项包含django.contrib.messages.context_processors.messages。...如果它不适合您的需要,您可以通过设置MESSAGE_STORAGE的完整导入路径来选择另一个存储类,例如: MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage...WARNING 失败并没有发生,但可能即将发生 ERROR 一个操作没有成功,或者发生了其他一些失败 MESSAGE_LEVEL设置可用于更改最低记录级别(或可根据请求更改)。...默认情况下,它是相关常量名称的小写版本,但如果需要,可以通过使用MESSAGE_TAGS设置来更改。...import SuccessMessageMixin from django.views.generic.edit import CreateView from myapp.models import

    2.9K20

    diango之基于内置视图CBS编程

    "/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示的页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页 UpdateView 更新对象 修改文章页 DeleteView 删除对象 删除文章页...View中基本元素 1 class ModelCreatView(CreateView): 2 def __init__(self, model, template_name, context_object_name...初始化函数,这里以creatview为例,其他view大同小异 5 :param model: 对应要操作的模型 6 :param template_name: 对应的模板名称...Mixin实现 view中如果觉得自带的post、get方法不够好,也可以重写post、get方法,这样就与函数式编程没有什么区别。

    70630

    Python 项目实践三(Web应用程序)第二篇

    请求的URL与前述正则表达式匹配时,Django将调用views.index(这个视图函数将在下一节编写)。第三个实参将这个URL模式的名称指定为index,让我们能够在代码的其他地方引用它。...下面的代码演示了该如何为主页编写视图: from django.shortcuts import render # Create your views here. def index(request)...模板指定了网页是什么样的,而每当网页被请求时,Django将填入相关的数据。模板让你能够访问视图提供的任何数据。我们的主页视图没有提供任何数据,因此相应的模板非常简单。... 如果你请求这个项目的基础URL——http://localhost:8000/,将看到刚才创建的网页,而不是默认的Django网页。...对于每个网页,我们都将指定URL模式,编写一个视图函数,并编写一个模板。但这样做之前,我们先创建一个父模板,项目中的其他模板都将继承它。

    1.4K100

    关于“Python”的核心知识点整理大全53

    如果请求的URL不与任何URL模式匹配,Django 将返回一个错误页面。 url()的第二个实参(见5)指定了要调用的视图函数。...请求的URL与前述正则表达式匹配时, Django将调用views.index(这个视图函数将在下一节编写)。第三个实参将这个URL模式的名称 指定为index,让我们能够在代码的其他地方引用它。...下面的代码演示 了该如何为主页编写视图: from django.shortcuts import render def index(request): """学习笔记的主页""" return...模板指定了网页是什么样的,而每当网页被请求时,Django将填入 相关的数据。模板让你能够访问视图提供的任何数据。我们的主页视图没有提供任何数据,因此 相应的模板非常简单。...例 ,数据库专家可专注于模型,程序员可专注于视图代码,而Web设计人员可专注于模板

    10110

    Django博客开发教程-Python零基础开发网站

    注意: 如果对需要指定Django版本的话,不能直接使用这个方法,这个方法会直接下载最新版本的Django。...指定版本的话,请使用CMD通过命令:pip install django==2.0.1安装。 安装成功之后项目目录结构如下图所示: ?...如果指定域名的话,在''里放入指定的域名即可 二、设置TEMPLATES里的'DIRS',添加模板目录templates的路径,后面我们做网站模板的时候用得着。...'blog.apps.BlogConfig',#注册APP应用 ] #使用pycharm创建的话,这里自动添加了,如果是终端命令创建的话,需要手动添加应用名称'blog', 五、修改项目语言和时区...2、留意路径前有没有我们创建的虚拟环境名,之前我们创建的虚拟环境名是myblogvenv,如果显示正确,则说明我们启动正确。

    1K20

    35.Django2.0文档

    也就是说,block 标签不仅挖了一个要填的坑,也定义了在 父 模板中这个坑所填充的内容。如果模 板中出现了两个相同名称的 {% block %} 标签,父模板将无从得知要使用哪个块的内容。...M:数据存取部分,由django数据库层处理,本章要讲述的内容。   V:选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。   ...输入一下命令,如果没有报错说明,说明数据库配置是正确的 >>> from django.db import connection >>> cursor = connection.cursor() 3.第一个模型...如果指定的app目录下找到admin.py,它就执行其中的代码。...其它的django.contrib应用程序,django.contrib.redirects,其它从网上下在的第三方Django应用程序一样,都会自行添加到管理工具。

    11.3K100

    Django基础篇-模板加载静态文件

    代码布局 指定自定义模板标签和过滤器的最常见的地方在 Django 应用程序中。...在 templatetags 包中放多少个模块没有限制。只需要记住 {% load %} 声明将会载入给定模块名中的标签/过滤器,而不是应用的名称。...没有声明 name 参数,Django 将使用函数名作为过滤器的名字。 如果你正在编写一个只希望用一个字符串来作为第一个参数的模板过滤器,你应当使用 stringfilter 装饰器。...tag() 方法有两个参数: 模板标记的名称-字符串。如果省略,将使用编译函数的名称。 编译的函数-一个 python 函数(不要把函数名写成字符串) 与过滤器注册一样,也可以将其用作装饰器。 ?...除了将标签的结果存储在指定的上下文变量中,而不是直接输出,该函数的工作方式与 simple_tag() 相同。 ? 然后你可以使用 as 参数后面跟随变量的名称将结果储存在模板变量中,并将它输出: ?

    1.2K20

    基于Strview.js项目脚手架StrviewApp是怎么搭建起来的?

    如果你觉得对自己有用,可以继续看下去。如果觉得这篇肯定是篇垃圾文章,你也可以避而远之。好了,我们现在就进去正题。准备好了吗?一起跟我来吧!...strview-cli -v 最后,就是初始化项目了,是自定义项目名称。...package.json 定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。...我们可以看到在template标签上有一个id选择器与上面的getElementById()方法中的参数一样。是的,这地方必须一一对应。...并且这里有一个标签文本,这个文本内容是默认显示的,如果组件中没有内容,则这个内容就会默认显示。

    73010

    Django快速入门——投票程序(3)视图

    Django将会根据用户请求的URL来选择使用哪个视图。为了将URL和视图关联起来,Django使用了URLconfs将URL模式映射到视图。...这就是为什么尽管我们没有像在第二部分中那样修改 DIRS 设置,Django 也能正确找到 polls 的模板位置的原因。...Django 将会选择第一个匹配的模板文件,如果你有一个模板文件正好和另一个应用中的某个模板文件重名,Django 没有办法 区分 它们。...我们需要帮助 Django 选择正确的模板,最好的方法就是把他们放入各自的 命名空间 中,也就是把这些模板放入一个和自身应用重名的子文件夹里。...为 URL 名称添加命名空间 教程项目只有一个应用:polls 。在一个真实的 Django 项目中,可能会有五个,十个,甚至更多应用。Django 如何分辨重名的 URL 呢?

    22720

    django 1.8 官方文档翻译: 3-2-3 TemplateResponse 和 SimpleTemplateResponse

    接收一个与后端有关的模板对象(例如get_template() 返回的对象)、模板名称或者一个模板名称列表。...如果指定content_type,则使用它的值。 否则,使用DEFAULT_CONTENT_TYPE。 status 响应的HTTP 状态码。 charset 响应编码使用的字符集。...如果没有给出则从content_type中提取,如果提取不成功则使用 DEFAULT_CHARSET 设置。 using 加载模板使用的模板引擎的名称。...如果指定content_type,则使用它的值。否则,使用DEFAULT_CONTENT_TYPE。 status 响应的HTTP 状态码。 current_app 包含当前视图的应用。...如果没有给出则从content_type中提取,如果提取不成功则使用 DEFAULT_CHARSET 设置。 using 加载模板使用的模板引擎的名称

    44640

    第1节 初识Django框架

    配置相关属性修改端口号指定端口号python manage.py runserve 9527项目中修改端口号图片指定IP及端口python manage.py runserve 0.0.0.0:9527...=None,using=None)template_name:模板名称context:模板的上下文对象(dict)request:请求对象using:模板引擎名称Jinja2)输入URLhtttp:...request, template_name,context=None,content_type=None,status=None,using=None)```request:请求对象template_name:模板名称...context:模板的上下文对象(dict)content_typ:MIME类型,默认为text/htmlstatus:HTTP状态码using:模板引擎名称Jinja2)输入URLhtttp://...步骤二:配置模板地址步骤三:配置URL内置通用视图django.views.generic.ListView列表类数据的封装,:景点列表,支持分页django.views.generic.DetailView

    66130

    django 1.8 官方文档翻译: 1-2-3 编写你的第一个Django应用,第3部分

    - 这就是 Django 知道怎么找到 polls 模板的原因,即使我们 没有修改 TEMPLATE_DIRS, 还是如同在 教程 第2部分 那样。...Django 将会选择第一个找到的按名称匹配的模板如果你在 不同 应用中有相同的名称模板Django 将无法区分它们。...我们想要让 Django 指向正确的模板,最简单的方法是通过 命名空间 来确保是 他们的模板。也就是说,将模板放在 另一个 目录下并命名为应用本身的名称。...如果你创建了这个模板,至少添加些“页面未找到” 的内容。...Django 是如何知道 使用 {% url %} 模板标记创建应用的 url 时选择正确呢? 答案是在你的 root URLconf 配置中添加命名空间。

    1.8K50
    领券