2016-03-28 11 views
3

私は初めての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-クリスピー・フォームが、無駄を更新してみました。この謎を解くのを手伝ってください。

+0

参考:こちらのレポはhttps://github.com/art-solopov/mdwikiです。私は、今では自分のカスタムタグを書いて、今やクリスピーフォームであきらめてきました。 –

答えて

7

ここで何も問題はありません。鮮明なテンプレートは、コンテキスト変数が存在する場合と存在しない場合があるtagを探し、それに応じて要素をレンダリングします。

これらのエラーがすべて表示される理由は、DEBUGレベルロギングが設定されているためです。 templatesについてこれが行われると、ドキュメントは次のようになります。

欠落しているコンテキスト変数は、DEBUGメッセージとして記録されます。

エラーは何も心配するものではありません。

Githubレポを見ると、既に移動している可能性があります。

+0

ああ、ありがとう!これらの欠落したコンテキスト変数が私のテストに失敗することがありますか?それが私の調査の主な原因でした。 –

+0

私は前に進みましたが、テストに合格して動作するアプリしか持っていませんでした。私はカスタムタグがいくつかのウィジェットを正しく処理しないという強い疑念を持っています(ラジオボタンのように)。 –

+0

あなたのテストには影響しないと思ってはいけませんが、どのような失敗があるかによって異なります。一般的に言えば、django.templateにデバッグログを記録すると、特定の問題をデバッグしようとしない限り、あまりにも多くのノイズが発生します。 – solarissmoke

関連する問題