在django帮助文本字段中放置带有onClick属性的链接

Placing a link with onClick property in django helptext field

本文关键字:onClick 属性 链接 帮助 django 文本 字段      更新时间:2024-05-30

我有一个模型

class RegularUserFormStep1(ModelForm):

class Meta:
    model = RegularUser
    fields = ('school', 'grad_date',)
    help_texts = {'school':mark_safe("<a id='school_add' href = '#' onClick='ModalToggle('{% url 'schools_add' %}','{% url 'schools_add' %}','#form','Add school'); return false;' >Add</a>")}

但当我尝试点击链接时,我得到未捕获的SyntaxError:意外的令牌}

所以,我想问一下,在字段帮助文本中嵌入包含django模板变量的链接的正确方法是什么。

字符串不被视为Django模板,因此不能使用url模板标记。

代替

{% url 'schools_add' %}

您可以使用reverse获取url

schools_add_url = reverse('schools_add')

然后把它代入你的字符串中。

help_texts = {
    'school': mark_safe(
        "<a id='school_add' href = '#' onClick='ModalToggle('%s','%s','#form','Add school'); return false;' >Add</a>" % (schools_add_url, schools_add_url)
    )
}

在使用mark_safe作为帮助文本时,应始终小心。在这种情况下,您不包括来自用户的任何内容,所以没关系。