Django templates 使用两种django脆皮形式

Django templates 使用两种django脆皮形式,django-templates,django-crispy-forms,Django Templates,Django Crispy Forms,我很难同时使用两种django脆饼。我有一个表单只需将新数据输入我的应用程序,另一个表单以引导模式显示,供用户提供反馈。下面,我将我的模板剥离到最基本的部分 我有一个团体表格: class Crispy_Group_Form(forms.ModelForm): def __init__(self, *args, **kwargs): self.helper = FormHelper() # self.helper.form_tag = False

我很难同时使用两种django脆饼。我有一个表单只需将新数据输入我的应用程序,另一个表单以引导模式显示,供用户提供反馈。下面,我将我的模板剥离到最基本的部分

我有一个团体表格:

class Crispy_Group_Form(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        # self.helper.form_tag = False
        self.helper.form_class = 'form-horizontal'
        self.helper.layout = Layout(
            Fieldset(
                'New Group',
                Field('name', placeholder='Group Name'),
                Field('notes', placeholder='Group Notes', rows='10', css_class='input-xxlarge'),
            ),
            FormActions(
                Submit('save_changes', 'Save changes', css_class="btn-primary"),
                HTML(' | '),
                Submit('cancel', 'Cancel'),
            )
        )
        self.helper.form_id = 'id-Crispy_Group_Form'
        self.helper.form_method = 'post'


        super(Crispy_Group_Form, self).__init__(*args, **kwargs)        

    class Meta:
        model = Group
        exclude = ['slug']
和联系方式

class Crispy_ContactForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_class = 'form ajax'
        self.helper.form_action = 'feedback'
        self.helper.form_tag = False
        self.helper.layout = Layout(
            Fieldset(
                'Contact Form',
                Field('topic', placeholder='Topic', css_class='input-medium'),
                Field('subject', placeholder='Subject', css_class='input-xlarge'),
                Field('message', placeholder='Message', rows='5', css_class='input-xlarge'),
                Field('sender', placeholder='Sender', css_class='input-xlarge'),
            ),
        )
        self.helper.form_id = 'id-Crispy_ContactForm'
        self.helper.form_method = 'post'

        super(Crispy_ContactForm, self).__init__(*args, **kwargs)

    class Meta:
        model = Feedback
        exclude = ['creation_date']
我的看法是:

def bootstrap_test(request):

    return render_to_response(
        "bootstrap_test.html", {
            'feedback_form' : Crispy_ContactForm,
            'form' : Crispy_Group_Form,
        },
        context_instance=RequestContext(request))
我最基本的模板是:

{% load crispy_forms_tags %}

<form action="{% url feedback %}" method="post" id="id-Crispy_ContactForm" class="form">
    {% crispy feedback_form %}
</form>

{% crispy form %}
{%load crispy_forms_tags%}
{%crispy反馈形式%}
{%crispy form%}
反馈表单显示两次。好像两种形式都是同一种形式。如果我从模板中删除了反馈表单,那么它将显示组表单。如果我重新排列这两种形式,使{%crispy form%}高于来自的反馈,它将正确显示这两种不同的形式

,但找不到有效的方法


为什么会发生这种情况?我需要调整什么才能使其正确显示?

好的,我知道了。看起来crispyforms覆盖了“form”变量。这就是为什么它返回相同的两种形式:

<form action="{% url feedback %}" method="post" id="id-Crispy_ContactForm" class="form">
    {% crispy feedback_form %}
</form>

{% crispy form %}

{%crispy反馈形式%}
{%crispy form%}
但这会返回两种不同的形式:

{% crispy form %}

<form action="{% url feedback %}" method="post" id="id-Crispy_ContactForm" class="form">
    {% crispy feedback_form %}
</form>
{%crispy form%}
{%crispy反馈形式%}
第一个示例在第二个表单调用获取变量“form”之前覆盖它


我只是想确认我没有做错什么。因此,我简单地颠倒了调用这两个表单的顺序,{%crispy form%}的实例首先出现。我无法对表单使用其他变量,因为我正在使用创建/更新对象函数。

这已在django crispy forms 1.2.0中解决/修复