相关疑难解决方法(0)

在Django模板中构建一个列表

使用此代码:

{% for o in [1,2,3] %}
    <div class="{% cycle 'row1' 'row2' %}">
        {% cycle 'row1' 'row2' %}
    </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我得到一个TemplateSyntaxError:

Could not parse the remainder: '[1,2,3]' from '[1,2,3]'
Run Code Online (Sandbox Code Playgroud)

有没有办法在模板中构建列表?

django django-templates

38
推荐指数
5
解决办法
4万
查看次数

如何在handlebars-django模板中引用静态文件

摘要:

我应该如何引用django模板中把手 - 部件中的静态文件?如果我使用verbatim标签,我可以使用把手,但是我不能使用django的static标签.

细节

在将应用程序转换为Django时,我遇到了一个handelbars.js用于呈现ajax-call-results的部分.通过,其中包括" Django模板中的Handlebars.js ",我发现了{% verbatim %}标签.

一个简单的把手就可以正常工作.但我也有一个部分,根据结果动态显示图像,看起来像这样:

<img src="path/{{ result }}.png">
Run Code Online (Sandbox Code Playgroud)

现在虽然我可以手动设置路径,但是我相信Django最好引用你的静态文件,如下所示:

<img src="{% static 'path/file.png' %}">
Run Code Online (Sandbox Code Playgroud)

static_url不建议只获得常量,例如参见此博客

因此,除非某人有一个真正令人信服的理由来解决它,否则我认为最好使用该{% static %}方法.

天真的解决方案是将两种技术结合起来,并逐字地用verbatim/endverbatim喷涂模板.除了这看起来丑陋,难以辨认并且从一开始看似乎是一个坏主意的事实之外,它也不起作用.

{% verbatim %}
    <!-- handlebars -->
    {% endverbatim %}
    <img src="{% static 'path{% verbatim %}{{ result }}{% endverbatim %}' %}">
    {% verbatim %}
    <!-- handlebars -->
{% endverbatim %}
Run Code Online (Sandbox Code Playgroud)

结果是泪流满面

TemplateSyntaxError at/
无法解析余数:''path {%'from''path {%'

有可能在后端生成正确的静态URL,并进行渲染.但是后端不应该知道我们想要在模板中显示什么图像.

只有解决方案可能是使用'relative'字符串(例如path/result.png)向后端额外调用后端,并要求正确的静态链接?这并不难,但需要额外的电话,但情况并非如此.

那么我该如何正确引用这些静态文件呢?

django templates django-templates django-staticfiles handlebars.js

7
推荐指数
1
解决办法
632
查看次数

如何根据对象的字段值在 django 模板中分配 HTML 类

模型.py:

class MyText(models.Model)
    value = models.TextField()
    appearance = models.Charfield(
        max_length=50, 
        choices=(
            ('bold', 'Bold'),
            ('italic', 'Italic'),
        )
    )
Run Code Online (Sandbox Code Playgroud)

目的:

a_lot_of_text = MyText(value='a lot of text', appearance='bold')
Run Code Online (Sandbox Code Playgroud)

我将这个对象通过contextin传递views.py到 HTML 模板中。我想检查(在 HTML 中)有什么样的外观a_lot_of_text,并使用 certanclass作为其<div>元素。换句话说,我想得到这样的东西:

mytemplate.html(伪代码):

<style>
    bold_class {...}
    italic_class {...}
</style>

{% if object.appearance == 'bold' %}
    {% somehow i will use 'bold_class' %}
{% elif object.appearance == 'italic' %}
    {% somehow i will use 'italic_class' %}
{% endif %}

{% for word …
Run Code Online (Sandbox Code Playgroud)

django django-templates

5
推荐指数
1
解决办法
5259
查看次数