我正在使用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