2016-05-18 8 views
0

私は、ユーザーが注文できるページを作成しました。だから、formsetの1つのフィールドである「言語」を含むの説明,ノートなどのいくつかのフィールドを埋めることができます。DjangoでフォームのIDを設定する方法は?

だから私のviewで、ほとんどすべてのフィールドが含まれているjob_creation_form、その後、FormsetがそこにあるさLanguageの形で構成されています。

JQuery validateプラグインを使用して、ページを更新せずにフィールドの検証をしたいと考えています。問題は、私がにformというタグが1つあり、idがないことです。 idの設定方法は?ジャンゴdjango.forms.Form

enter image description here

def create_order(request): 
    LanguageLevelFormSet = formset_factory(LanguageLevelForm, extra=5, max_num=5) 
    language_level_formset = LanguageLevelFormSet(request.POST or None) 
    job_creation_form = JobCreationForm(request.POST or None, request.FILES or None) 

    context = {'job_creation_form': job_creation_form, 
       'formset': language_level_formset} 

    if request.method == 'POST': 
     if job_creation_form.is_valid() and language_level_formset.is_valid(): 
      cleaned_data_job_creation_form = job_creation_form.cleaned_data 
      cleaned_data_language_level_formset = language_level_formset.cleaned_data 
      for language_level_form in [d for d in cleaned_data_language_level_formset if d]: 
       language = language_level_form['language'] 
       level = language_level_form['level'] 
       job = Job(
         customer=request.user, 
         text_to_translate=cleaned_data_job_creation_form['text_to_translate'], 
         file=cleaned_data_job_creation_form['file'], 
         short_description=cleaned_data_job_creation_form['short_description'], 
         notes=cleaned_data_job_creation_form['notes'], 
         language_from=cleaned_data_job_creation_form['language_from'], 
         language_to=language, 
         level=level, 
       ) 
       job.save() 
      return HttpResponseRedirect('/order-success') 
     else: 
      print job_creation_form.errors 
      print language_level_formset.errors 
      return render(request, 'auth/jobs/create-job.html', context=context) 

    return render(request, 'auth/jobs/create-job.html', context=context) 
+3

あなたの問題は何か分かりません。フォームが1つだけの場合、$(「フォーム」)を選択するのとは対照的に、IDが必要なのはなぜですか?また、本当に必要な場合は、テンプレートにIDを付けないでください。 – raphv

答えて

1

のみ(ボタン、アクション、方法書を提出)の内部(すなわちフィールド、検証、保存)の形の部分を、ない提出に関する詳細のいずれかを扱います。

あなたはそれが似ているテンプレートでフォームをレンダリングする理由ときです:

{% extend base.html %} 
{% block content %} 
<form action='' method='post'> 
{{ form }} 
</form> 
{% endblock %} 

したい場合は、フォーム上のidプロパティを設定し、<form ... id='{{ form.id }}'>のようなテンプレートでそれにアクセスするか、単に置くことができますフォーム上のID。

関連する問題