标签: templatetags

Django templatetag用于呈现html的子集

我有一些html(在这种情况下通过TinyMCE创建)我想添加到页面.但是,出于安全原因,我不想只打印用户输入的所有内容.

有没有人知道一个模板标签(最好是一个过滤器),它只允许渲染一个安全的html子集?

我意识到降价和其他人这样做.但是,它们还添加了额外的标记语法,这可能会让我的用户感到困惑,因为他们使用的是不知道降价的富文本编辑器.

html django markdown django-templates templatetags

2
推荐指数
1
解决办法
903
查看次数

Django - 确定传递给模板标记的变量的字段类型

我想写一个Django模板标签,我可以传递一个变量.

我希望模板标签的行为不同,具体取决于变量派生的模型字段的类型(CharField,BooleanField,IntegerField等)以及字段定义中使用的其他信息(max_length等)

我可以轻松地将变量传递给模板标记,遵循以下文档:将 模板变量传递给标记

有没有办法确定变量的原始模型字段的类名和模型参数?

换句话说:我可以制作这样的标签:

{% template_tag model.field %}
Run Code Online (Sandbox Code Playgroud)

并在标签渲染功能中访问来自模型的信息?

field = models.CharField(max_length=40)
Run Code Online (Sandbox Code Playgroud)

python django variables field templatetags

2
推荐指数
1
解决办法
5769
查看次数

无法访问 Django 模板中的 UserProfile 模型字段。试过{{ user.userprofile }}

我试图导入 {{ user.userprofile. }} 和 {{ user.userprofile }} 没有成功。在 django shell 中,我可以使用 UserProfile.objects.all() 访问用户配置文件。

{{ 用户。}} 工作正常,所以我认为这是我的模型的问题,但我已经检查了 Django 文档“模型”、“数据库查询”和“模型实例引用”以及相关的 S/O 帖子,但如果它是我的模型这就是问题所在,我不知道还能搜索什么。

谢谢

模型.py

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

class UserProfileManager(models.Manager):
    pass

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='user')
    can_inst_nat = models.BooleanField(verbose_name='I can explain grammar and word usage to people in my NATIVE language.', default=False)
    can_inst_tar = models.BooleanField(verbose_name='I can explain grammar and word usage to people in my TARGET language.', …
Run Code Online (Sandbox Code Playgroud)

python django model templatetags user-profile

2
推荐指数
1
解决办法
590
查看次数

没有名为“django.core.context_processors”的模块 django 模板

我尝试制作一个模板标签来获取登录用户request.user,我尝试了这个

在设置.py

'context_processors': [
     'django.core.context_processors.request',
     'django.template.context_processors.debug',
     'django.template.context_processors.request',
     'django.contrib.auth.context_processors.auth',
     'django.contrib.messages.context_processors.messages',
            
     ],
Run Code Online (Sandbox Code Playgroud)

这是我的模板标签

from django import template
register = template.Library()

@register.simple_tag
def is_member(context):
    request = context['request'].user
    if request.user in request.user.model_name.admins.all:
        return True
    else:
        return False
Run Code Online (Sandbox Code Playgroud)

我必须确保登录的用户是否是管理员(M2M)字段中的成员之一,但我收到此错误

没有名为“django.core.context_processors”的模块

当我尝试删除'django.core.context_processors.request'settings.py 文件中的这一行时,我收到此错误

“is_member”未收到参数的值:“context”

更新 - 模板

'context_processors': [
     'django.core.context_processors.request',
     'django.template.context_processors.debug',
     'django.template.context_processors.request',
     'django.contrib.auth.context_processors.auth',
     'django.contrib.messages.context_processors.messages',
            
     ],
Run Code Online (Sandbox Code Playgroud)

任何建议我都会感激谢谢,艺术

python django templatetags

2
推荐指数
1
解决办法
3033
查看次数

django模板标签检查对象布尔字段的语法

使用Django模板标签,我试图检查我传递给模板的对象布尔字段(使用python)是否为True.

如果我在页面上打印对象,我会看到值True/False:

<p>{{ obj.bool }}</p>
Run Code Online (Sandbox Code Playgroud)

我试过了:

{% if {{ obj.bool }} == True %}
    HELLO
{% endif %}
Run Code Online (Sandbox Code Playgroud)

这会引发语法错误

无法解析余数:'{{'from'{{'

和:

{% if '{{ obj.bool }}' == 'True' %}
    <p>HELLO</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

没有给我什么......?

django templates templatetags

0
推荐指数
1
解决办法
277
查看次数