关于Django模板引擎的问题,它旨在将文档的表示与其数据分开。
有没有办法为 django 中的所有模板指定默认的基本模板?
我已经熟悉 Django 2 个小时了,我想知道是否有一种方法可以指定一个默认的基本模板,该模板将自动为所有模板加载,这样您就不必重复自己并指定...
如何在模板(django)中调用OneToOneField反向关系?
我的 models.py 中有这些模型 用户模型 用户类(AbstractBaseUser,PermissionsMixin): """自定义用户模型""" 电子邮件 = models.EmailField(max_length=255,
我觉得我已经读过一百遍了,但我仍然不知道如何在 django-tables2 TemplateColumn 中使用权限。 我的目标是能够在 b 列中渲染按钮...
我正在尝试使用变量从字典中访问值,所有这些都在遵循 Django 模板语言的 HTML 文件中。 Django 的模板语言不允许您使用以下方式访问字典...
如何在 django-cms 中使用 Apphooks 正确渲染 django-view?
我正在使用 4.1.2 版本在 Django CMS 中构建一个项目。该项目的一部分将是新闻部分,我为此定义了一个 Django 模型,如下所示: # 新闻/models.py 从 django.db 导入模型 夫...
Django 模板:如何使用 JavaScript 连接传入 Django 标签的聊天脚本?
我正在开发一个 Django 项目,我需要根据用户 cookie 同意有条件地渲染和执行聊天脚本。这是我到目前为止所得到的: 在我的 Django 模板中,我有以下内容
我实际上是 Django 新手,并尝试将我的主题加载到新创建的项目中。 我在 Django 项目的 {APP_NAME}/templates/ 目录中放置了一个 home.html 模板文件。 APP_NAME 是...
我们如何在python3.x中将zip文件解压到文件的父文件夹中
我需要通过在运行时选择存档来解压缩它。 我在模板中使用 HTML 输入类型文件传递 zip 文件,然后使用 ZipFile 的函数 extractall()。这个基本...
如何解决Django与Visual Studio Code更改模板没有效果的问题?
我有一个 Django 应用程序,并且使用 Visual Studio Code 作为编辑器。我已经实现了通过电子邮件模板恢复密码的功能。我编辑了模板,看看会有什么效果
我对 Django 的经验有限,但我遇到了一个问题,我更新了在我们页面上提供重要视图的 HTML 模板文件,而某些用户在查看页面时没有得到
将一个查询集渲染为 2 个 div 列(django 模板)
有没有好的方法将查询集的枚举呈现为两个 div 列? 使用 960 网格,我得到了一些效果...... 有没有一种好方法将查询集的枚举呈现为两个div列? 使用 960 网格,我得到了一些效果...... <div class="container_16"> <div class="grid_8 alpha"></div> <div class="grid_8 omega"></div> </div> 在 Django 中,一个模型需要在这两列中呈现其枚举内容,并且最好是稍微相等。 目前,我有一些丑陋的代码,在视图中将 QuerySet 分成两半,然后每一半都呈现在各自的列中。 一定有更好的方法来做到这一点,最好只使用模板渲染系统? 仅供参考,目前它的“工作原理”如下: views.py @render_to('template.html') def main_athletics_page(request, *args, **kwargs): sports = Sport.objects.all() half = sports.count() / 2 return { 'sports_1' : sports[0:half], 'sports_2' : sports[half:] } 模板.html <div class="grid_8 alpha"> {% for sport in sports_1 %} <!-- Blah blah --> {% endfor %} </div> <div class="grid_8 omega"> {% for sport in sports_2 %} <!-- Blah blah --> {% endfor %} </div> 我建议使用 Django 过滤器。 Django snippets 提供了分区模板过滤器,您可以像这样使用: {% load listutil %} <div class="grid_8 alpha"> {% for sport in sports|partition:"2"|first %} <!-- Blah Blah --> {% endfor %} </div> <div class="grid_8 omega"> {% for sport in sports|partition:"2"|last %} <!-- Blah Blah --> {% endfor %} </div> 这是渲染系统的任务,而不是视图的任务。视图不应该知道您是否会在模板中显示 2、3 或 4 列。 使用默认的 Django 标签总是更好。 使用默认的 Django 模板标签 cycle: <table> {% for item in items %} {% cycle 'row' '' as row silent %} {% if row %}<tr>{% endif %} <td> {{ item }} </td> {% if not row %}</tr>{% endif %} {% endfor %} </table> 它将显示您的列表 [1 2 3 4 5 6] 1 2 3 4 5 6 顺便说一下,Jinja2 模板引擎有 batch 和 slice 过滤器,可以做到这一点。我切换到 jinja2,现在不再有“如何使用糟糕的 django 标签和过滤器显示 x”的问题了 我认为您必须创建自己的模板标签才能对查询进行拆分。我会做类似的事情。 from django.template import Library, Node, TemplateSyntaxError from restaurants.forms import MenuItemForm class Split(Node): def __init__(self, queryset, split_count=2, basename=None): self.queryset_name = queryset self.split_count = split_count self.basename = basename if basename else queryset def render(self, context): qs = context[self.queryset_name] qs_break = len(qs)/self.split_count for x in xrange(0, self.split_count-1): context["%s_%i"%(self.basename, x+1)] = qs[qs_break*x:qs_break*(x+1)] context["%s_%i"%(self.basename, x+2)] = qs[qs_break*x+1:] return '' def split(parser, token): """ Call from template will be {% split <queryset> on <count> as <name> %} """ tokens = token.split_contents() if len(tokens) > 6: raise TemplateSyntaxError("Too many Tokens") #Do various tests to make sure it's right. return Split(tokens[1], tokens[3], tokens[5]) split = register.tag(split) 请注意,我还没有实际测试过这段代码,所以它可能会失败,但它应该为您指明正确的方向,让这些东西远离您的视线。 这是一个使用 bootstrap 且不需要 Django 过滤器的快速解决方案 <div class="row"> {% for sport in sports %} <div class="col-md-6"> <!-- Blah Blah --> </div> {% endfor %} </div> 迟到的回复,差不多 13 年后了:) 但我认为,如果你有一个 固定长度列表,最简单的方法就是遵循你在示例中使用的相同方法,只是 slice 列表。但不需要在视图上进行切片,您可以使用 切片过滤器在模板上进行切片。 <div class="grid_8 alpha"> {% for sport in sports|slice:":7" %} <!-- Blah blah --> {% endfor %} </div> <div class="grid_8 omega"> {% for sport in sports|slice:"7:" %} <!-- Blah blah --> {% endfor %} </div> 注意:如果您没有固定大小的列表,您可能需要检查长度过滤器 (sports|length) 并找到一种在 Django 模板中进行划分的方法。但此时可能最好按照 @notnoop 响应创建自己的过滤器。 <div class="grid_8 alpha"> {{ sport.0.column_name }} <!--for row1 and specific col column_name--> </div> <div class="grid_8 omega"> {{ sport.1.column_name }} <!--for row2 and specific col column_name --> </div>
我使用Django在static/images中配置了默认头像路径,但是系统总是在media/images中寻找默认头像文件。 模型.py 类配置文件(模型.模型): 用户 = 模型。
为什么输入错误{$ block content %}会导致错误?
我收到此错误 --> 无效的块标记:“endblock”。您是否忘记注册或加载此标签? 我确保正确缩进和放置空格,是的,我确实有最新版本的 py...
在 if 块中使用 {% extends %} 时出现 Django 模板语法错误
下面的代码语法有问题吗,有错误 无效的块标签:'else' {% ifequal chat_profile 1 %} {% 扩展“chatprofile/chat_profile1.html” %} {%...
我创建了一个像这样的模型 类 Post(models.Model): title_of_post = models.CharField(max_length=100) 实际帖子 = models.TextField() 我把这个模型放在管理界面中,然后...
创建内容页面 - 通过外键过滤查询集并将结果渲染到 Django 模板 -
尝试渲染这个结构(树结构): 书_1 Book_1 的章节 书_2 Book_2 的章节 具体例子: 书名:杀死一只知更鸟 它的章节:第一章 - Finc 的开始...
127.0.0.1/:1 拒绝执行来自'http://127.0.0.1:8000/scripts/scripts.js'的脚本,因为它的MIME类型('text/html')不可执行,并且严格的MIME类型检查已启用。 我得到的错误....
我已完成显示 Django 网站项目的图像滑块的所有必要步骤。但是图像没有显示,没有显示任何错误,我认为我家有一个错误......
通过django中的javascript提交带有<a></a>标签的表单
我正在尝试使用 javascript 提交我的表单,但它向我发送 GET 在后端我希望 POST html文件 {% csrf_token %} {{form.as_p... 我正在尝试使用 javascript 提交我的表单,但它发送给我 GET 在后端我希望POST html 文件 <form id="my_form" method="post"> {% csrf_token %} {{form.as_p}} <input type="number" name="conf" > <a onclick="document.getElementById('my_form').submit();" href="{% url 'signup' 0 %}">ارسال کد</a> <br><br> <button type="submit">ثبت نام</button> </form> 控制台日志 "GET /signup/0 HTTP/1.1" 200 1531 我期望的输出 "POST /signup/0 HTTP/1.1" 200 我相信您的问题是以下几行 <a onclick="document.getElementById('my_form').submit();" href="{% url 'signup' 0 %}">Send Code</a> 因为它是一个链接,所以浏览器将处理它的点击。您需要将 return false; 添加到您的点击处理程序中,以停止浏览器跟随链接,或者添加 event.preventDefault()。 也许值得一提的是,href属性此时不会执行任何操作。除了使 <a> 成为真正的链接、可聚焦且可以激活之外。 <a onclick="document.getElementById('my_form').submit(); return false;" href="{% url 'signup' 0 %}">Send Code</a> 从同一个表单采取不同的操作 但无论如何,按钮会更合适,因为您也在提交表单。 您的 href 属性和链接文本看起来您仍想提交表单,但在单击“发送代码”时采取不同的操作。为此,HTML 建议使用多个具有不同名称的提交按钮,以便在服务器上进行区分。 或者您可以将 formaction 属性 添加到按钮以将表单发送到不同的 URL。 <form id="my_form" method="post"> {% csrf_token %} {{form.as_p}} <label for="conf">Code</label> <input type="text" id="conf" name="conf" inputmode="numeric" pattern="\d+"> <button type="submit" name="send_code">Send Code</button> OR <button type="submit" formaction="{% url 'signup' 0 %}">Send Code</button> <br><br> <button type="submit" name="submit">Login</button> </form> 另请注意,我在代码字段中添加了一个标签,因为每个输入都需要一个标签。我更改了代码的输入类型,因为 type="number" 不是代码的正确输入类型。以下内容将确保优化屏幕键盘以输入数字并提供一些提示以提高可用性。 <label for="conf">Code</label> <input type="text" id="conf" name="conf" inputmode="numeric" pattern="\d+" size="6" placeholder="123456"> 您可以对标签 A 上的点击属性使用函数 因为首先单击标签,您会执行标签中的 href 的默认操作。如果您不添加 preventDefault(),则默认操作后 onclick 将不会触发 如果您想将表单发送到您的注册网址,您需要将其添加到表单标签中: <form id="my_form" method="post" action="{% url 'signup' 0 %}"> {% csrf_token %} {{form.as_p}} <input type="number" name="conf" > <br><br> <button type="submit">ثبت نام</button>
我正在开发这个 django 项目,在通过管理面板将图像上传到媒体后,我无法在输出中获得任何图像,但显示了替代文本。这是一些代码,可能...