django+;ajax发送表单

django+;ajax发送表单,django,ajax,Django,Ajax,我在收到一张表格后,尝试得到另一张表格 views.py 还有阿贾克斯 $(document).ready(function() { $("#my_form").submit(function(event) { event.preventDefault(); $this = $(this); $.ajax({ type: "POST", data: $

我在收到一张表格后,尝试得到另一张表格 views.py

还有阿贾克斯

$(document).ready(function() 
    { $("#my_form").submit(function(event) 
        { event.preventDefault(); 
            $this = $(this); 
            $.ajax({ 
                type: "POST",
                data: $this.serialize(), 
                success: function(data) 
                { console.log(data); 
                    $this.html(data.form1); 
                }, 
                error: function(data) 
                { console.log(data); 
                } 
            }); 
        }); 
});
我面临CSRF令牌丢失或不正确的问题。因为它没有转移到表格2。如何将此令牌转移到新表单

html这是html的第一页

{% extends 'base.html' %}
{% load i18n %}
{% block content%}
<div class="main-form">
<form action="" method="post" autocomplete="off" id="my_form">
  {% csrf_token %}
  <div class="contact-form" >
   <h1>{%trans 'Регистрация' %}</h1>
   <div class="txtb">{{form.fio.label}} {{form.fio}}{{form.fio.help_text}}</div>
   <div class="txtb"> {{form.purpose.label}}{{form.purpose}}</div>
   <div class="container" id="none">{{form.tso.label}}{{form.tso}}</div>
   <div class="txtb">{{form.phone.label}} {{form.phone}}{{form.phone.help_text}}{{form.phone.errors}}</div> 
   <div class="txtb"> {{form.number_car.label}}{{form.number_car}}</div> 
   <div class="txtb"> {{form.date_visit.label}}{{form.date_visit}}</div>  
   <div class="txtb"> {{form.captcha.label}}<br>{{form.captcha}}{{form.captcha.errors}}</div>
   <input type="submit" value="{%trans 'send' %}" class="btn" id="btn">   
  </div>
</form>
</div>
{% endblock %}
{%extends'base.html%}
{%load i18n%}
{%block content%}
{%csrf_令牌%}
{%trans'аааааа'%}
{{form.fio.label}{{form.fio}{{form.fio.help_text}}
{{form.purpose.label}{{{form.purpose}}
{{form.tso.label}{{form.tso}}
{{form.phone.label}{{form.phone}{{form.phone.help}{{form.phone.errors}
{{form.number_car.label}{{{form.number_car}}
{{form.date\u visit.label}{{{form.date\u visit}}
{{form.captcha.label}
{{form.captcha}}{{form.captcha.errors} {%endblock%}
它是html secon page endreg.html

    {% load i18n %}
{% block content%}


<form action="" method="post" autocomplete="off" >
   {% csrf_token %}
  <div class="verification" >
 <div class="ver">
   {{form}}
     </div>
      <input type="submit" value="{%trans 'send' %}" class="btn1" > 
    </div>  
</form>
{%endblock%}
{%loadi18n%}
{%block content%}
{%csrf_令牌%}
{{form}}
{%endblock%}

csrf令牌位于两个页面上,但当我在浏览器中查看代码时,当我使用ajax添加两个表单时,它不会出现,因为您使用的是
render_to_string
,您需要将
请求
对象传递到
render_to_string
。您可以通过以下方式实现:

def get_name(request):
    if request.method == 'POST':
        user_code = generate_code(8)
        subject = 'ver code' 
        message = user_code
        phone = request.POST['phone']
        form = NameForm(request.POST)
        if form.is_valid():
            Registration.objects.create(fio=request.POST['fio'],mail=request.POST['mail'])
            send_mail(subject, message,settings.EMAIL_HOST_USER,[mail],fail_silently=False)

        return JsonResponse({ 'form1': render_to_string('registers/endreg.html', {'form': NameForm1()}, request=request) })
    else:
        form = NameForm()
    return render(request, 'registers/detail.html', {'form': form})
def get_name(请求):
如果request.method==“POST”:
用户代码=生成代码(8)
主题='版本代码'
消息=用户代码
电话=请求。POST['phone']
form=NameForm(request.POST)
如果form.is_有效():
Registration.objects.create(fio=request.POST['fio'],mail=request.POST['mail'])
发送邮件(主题、邮件、设置。电子邮件\u主机\u用户[mail],失败\u静默=False)
返回JsonResponse({'form1':将_呈现为_字符串('registers/endreg.html',{'form':NameForm1()},request=request)})
其他:
form=NameForm()
返回呈现(请求'registers/detail.html',{'form':form})

你能添加你的html表单吗?@NalinDobhal addand ad cren browser还有一个问题,如果可能的话,为什么在使用ajax在页面上接收到两个表单后,第一个表单的表单代码中会出现
def get_name(request):
    if request.method == 'POST':
        user_code = generate_code(8)
        subject = 'ver code' 
        message = user_code
        phone = request.POST['phone']
        form = NameForm(request.POST)
        if form.is_valid():
            Registration.objects.create(fio=request.POST['fio'],mail=request.POST['mail'])
            send_mail(subject, message,settings.EMAIL_HOST_USER,[mail],fail_silently=False)

        return JsonResponse({ 'form1': render_to_string('registers/endreg.html', {'form': NameForm1()}, request=request) })
    else:
        form = NameForm()
    return render(request, 'registers/detail.html', {'form': form})