私は初めてのDjangoアプリケーションを作成しています。私はCrispyフォームを使用することにしました。私のビューにアクセスしているときには、errors(リストが実際には実際にはと大きいため、私はPasteBinnedされています。奇妙なことは、フォームが実際に正しくレンダリングされることです。Django crispy forms:テンプレート 'bootstrap3/whole_uni_form.html'で変数 'form_html'を解決しているときの例外
マイフォームクラス:
def _article_form_widget():
return forms.Textarea(
attrs={'rows': 30}
)
# [...] Some other forms
class NewArticleForm(forms.Form):
"""New article form"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_id = 'new_article_form'
self.helper.add_input(Submit('submit', 'Submit'))
name = forms.CharField(label='Article name', max_length=1100)
slug = forms.SlugField(label='Article slug', max_length=1100)
body = forms.CharField(label='Article body', widget=_article_form_widget())
マイビュー:
class NewArticleView(FormView):
form_class = NewArticleForm
template_name = 'wiki/new_article.html'
def form_valid(self, form):
with transaction.atomic():
self.article = Article(body=form.cleaned_data['body'])
self.article.save()
self.main_alias = Alias(
name=form.cleaned_data['name'],
slug=form.cleaned_data['slug'],
article=self.article
)
self.main_alias.save()
return super().form_valid(form)
def get_success_url(self):
return reverse_lazy('article-detail',
kwargs={'slug': self.main_alias.slug})
テンプレート:
{% extends "base.html" %}
{% block content %}
<h1>New article</h1>
{% load crispy_forms_tags %}
{% crispy form %}
{% endblock content %}
私はジャンゴとDjango-クリスピー・フォームが、無駄を更新してみました。この謎を解くのを手伝ってください。
参考:こちらのレポはhttps://github.com/art-solopov/mdwikiです。私は、今では自分のカスタムタグを書いて、今やクリスピーフォームであきらめてきました。 –