我正在使用django-crispy-forms
生成一个简单的形式,它显示在jquery对话框中。我的模型如下:从模型形式格式化Django脆皮形式
class DummyModel(models.Model):
name = models.CharField(max_length=100)
description = models.TextField(max_length=150)
time_points = models.PositiveIntegerField()
more_text = models.CharField(max_length=100)
class Meta:
db_table = "dummy"
我用我的form
类FormHelper
对象来定制一些瞭望如图所示,香脆形式的文档,如下所示:
class DummyForm(ModelForm):
def __init__(self, *args, **kwargs):
super(DummyForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_class = 'form-horizontal'
self.helper.layout = Layout(
Field('name', css_class='input-xlarge'),
Field('description', rows="3", css_class='input-xlarge'),
)
class Meta:
model = DummyModel
fields = ['name', 'description']
在我的模板
现在,我做以下内容:
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block title %}Dummy | Test {% endblock %}
{% block content %}
<div id="dialog" title="Edit" style="display: none;">
<form method="post" action="">
{% csrf_token %}
{% crispy DummyForm %}
<input type="submit" value="Submit Form"/>
</form>
</div>
{% load static %}
{% load render_table from django_tables2 %}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
function EditDialog() {
$("#dialog").dialog();
return false;
}
</script>
<div class="function-page">
<div class="table-form">
<div class="function-container">
{% render_table reviews %}
</div>
</div>
</div>
{% endblock %}
当EditDialog()
JavaScript是从链接调用的形式被加载,这将创建一个jquery对话框幷克与它的形式。
但是,我的格式似乎没有任何影响。例如,在这里的示例要点(https://github.com/django-crispy-forms/django-crispy-forms)中,标签和组件是水平放置的,但它们是垂直放置的。我还在窗体中的标签旁边看到一个*
,这很奇怪。附上的屏幕截图显示了它。
这是一个很棒的答案。如果可以的话,我会加倍努力!谢谢! – Luca