gpt4 book ai didi

django-crispy-forms - 如何将额外的上下文传递给 django-crispy-forms 字段模板?

转载 作者:行者123 更新时间:2023-12-04 08:11:02 25 4
gpt4 key购买 nike

检查 django-crispyforms 的 bootstrap3 模板包中的 field.html 模板,我注意到引用了一个额外的上下文变量“标签”。你可以在 line 12 上看到这个和 line 41的模板。如何在用于呈现特定表单字段的 field.html 模板的上下文中为“标签”指定值?

最佳答案

我使用 Palestamp 的回应作为指南来构建更通用的 CustomCrispyField .您可以通过extra_context作为 kwargCustomCrispyField . extra_context只是我在从 crispy_forms 复制的自定义模板中访问的字典.

from crispy_forms.layout import Field
from crispy_forms.utils import TEMPLATE_PACK


class CustomCrispyField(Field):
extra_context = {}

def __init__(self, *args, **kwargs):
self.extra_context = kwargs.pop('extra_context', self.extra_context)
super(CustomCrispyField, self).__init__(*args, **kwargs)

def render(self, form, form_style, context, template_pack=TEMPLATE_PACK, extra_context=None, **kwargs):
if self.extra_context:
extra_context = extra_context.update(self.extra_context) if extra_context else self.extra_context
return super(CustomCrispyField, self).render(form, form_style, context, template_pack, extra_context, **kwargs)

我会像这样以我的形式使用它:
self.helper.layout=Div(CustomCrispyField('my_model_field', css_class="col-xs-3", template='general/custom.html', extra_context={'css_class_extra': 'value1', 'caption': 'value2'})

我的模板将具有类似于以下的代码:
{% crispy_field field %}
<button class="btn {{ css_class_extra }}">{{ caption }}</button>

关于django-crispy-forms - 如何将额外的上下文传递给 django-crispy-forms 字段模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23223443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com