javascript - 如何在 Django 中为表单设置 ID?

标签 javascript jquery html django django-forms

我创建了一个页面,用户可以在其中下订单。所以他们可以填写一些字段,如描述注释等,包括“语言”,这是formset的一个字段。

所以在我的 View 中,有一个包含几乎所有字段的job_creation_form,然后有一个由Language组成的Formset 表格。

我想使用 JQuery validate 插件来验证字段而不刷新页面。问题是我可以在 HTML 中看到一个 form 标签,它没有任何 id。如何设置id

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)

最佳答案

在 Django 中 django.forms.Form仅处理表单的内部(即字段、验证、保存)部分,而不处理与提交相关的任何细节(提交按钮、操作、方法)。

这就是为什么当您在模板中呈现表单时:

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

如果您愿意,可以在表单上设置一个 id 属性并在模板中访问它,例如 <form ... id='{{ form.id }}'> ,或者只是在表单上输入一个 ID。

关于javascript - 如何在 Django 中为表单设置 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37302076/

相关文章:

javascript - JQuery 自动完成显示名称并使用 php 和 mysql 维护 id

javascript - 重新连接后,为什么Pubnub心跳停止?

javascript - 是否存在一种对象类型,它在 if block 中返回 false,并且可以向其中添加属性并从中检索属性?

javascript - 如何启用按钮检查单选按钮

jquery - 用于在 X 次页面浏览后显示模式的 JS cookie

jquery - 如何让我的隐藏段落在显示时静止不动

javascript - 在带有 onclick 的 React 组件上将 href 设置为什么

javascript 适用于除 IE 之外的所有浏览器

html - 浏览器支持 CSS3 还是 CSS2?更重要的是,针对 CSS2 或 CSS3 进行设计?

java - 如何用html测试java小程序?