gpt4 book ai didi

django-templates - 使用两种 django 脆皮形式

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

我很难同时使用两种 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 %}

反馈表单显示两次。好像两种形式都是同一种形式。如果我从模板中删除feedback_form,它会显示组表单。如果我重新排列这两个{%crispy form %} 高于feedback_from,它会正确显示两种不同的形式。

I read the documentation ,但无法找到有效的方法。

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

最佳答案

好,我知道了。似乎脆皮形式覆盖了“形式”变量。这就是为什么这会返回相同的两种形式:

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

{% crispy form %}

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

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

第一个示例在第二个表单调用可以获取它之前覆盖变量“form”。

我只是想确认这不是我做错了什么。所以我简单地颠倒了两个表单的调用顺序,以便 {%crispy form %} 的实例首先出现。我不能为表单使用不同的变量,因为我正在使用 create/update_object 函数。

关于django-templates - 使用两种 django 脆皮形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976341/

24 4 0