私はdjango-crispy-forms
を使用して、jqueryダイアログボックスに表示される簡単なフォームを生成しています。次のように私のモデルは次のとおりです。モデルフォームからdjango crispyフォームをフォーマットする
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のdialoを作成しますその中に形のあるg。
ただし、私の書式設定は効果がないようです。例えば、ここの要点(https://github.com/django-crispy-forms/django-crispy-forms)では、ラベルとコンポーネントは水平に配置されていますが、それらは私のために垂直に配置されています。私はまた、*
が奇妙な形のラベルの隣にあるのを見ます。添付されたスクリーンショットにそのスクリーンショットが表示されます。
これはすばらしい答えです。私はできればそれを100倍upvoteだろう!ありがとうございました! – Luca