request.POST 始终为空

时间:2021-08-01 20:01:12

标签: python django

我正在尝试将数据从我的表单发送到带有 ajax 的视图,但我在 request.POST 中的表单字段是空的。提交期间我的字段确实包含数据。但是当我检查 request.POST 的内容时,表单数据仍然是空的。因此 form.is_valid 值始终为 False。我怎么解决这个问题? 这是我的表格

<form id="formId" method="post">
    {% csrf_token %}
    {{form.errors}}
    {% for field in form %}
        <div class="input-group mb-3">
            <span class="input-group-addon bg-white">
                <i class="{% if field.html_name == 'email' %}
                            fa fa-envelope
                          {% else %}
                            fa fa-user w-4
                        {% endif %}">
                </i></span>
            {{field}}
        </div>
    {% endfor %}
    <div class="row">
        <div class="col-12">
            <button type="submit" id="btnRegister" class="btn btn-primary btn-block px-4">Créer le compte</button>
        </div>
    </div>
</form>

ajax

<script>
        $(document).ready(function(){
            $("#btnRegister").on("click",function(e){
                var form = document.getElementById("formId");
                function handleForm(event) { event.preventDefault(); }
                form.addEventListener('submit', handleForm);
            });
        });
        var serializeData = $("#formId").serialize();
        var nom_agent = $("#id_nom_agent").val();
        var prenom_agent = $("#id_prenom_agent").val();
        var email = $("#id_email").val();
        $.ajax({
            dataType: 'json',
            url: "{% url 'add_agent' %}",
            type: 'post',
            data: {
                "csrfmiddlewaretoken" : "{{  csrf_token  }}",
                'nom_agent': nom_agent,
                'nom_agent': prenom_agent,
                'email': email,
            },
            success: function(data){
                console.log("ok");
            },
            error: function(){}
        });
    </script>

我的观点如下

def add_agent(request):
    if request.is_ajax():
        if request.method=="POST":
            print(request.POST)
            form = RegisterForm(request.POST)
            if form.is_valid():
                nom_agent = form.cleaned_data["nom_agent"]
                prenom_agent = form.cleaned_data["prenom_agent"]
                email = form.cleaned_data["email"]
                if Agent.objects.filter(nom_agent=nom_agent,prenom_agent=prenom_agent).exists():
                    statut = ["warning"]
                    response = "Un agent avec ces nom et prénom existe déja !"
                else:
                    if User.objects.filter(email=email).exists():
                        statut = "warning"
                        reponse = "Cet email existe déjà"
                    else:
                        password = User.objects.make_random_password()
                        try:
                            user = User(email=email,password=password)
                        except:
                            print("gh")
                            return HttpResponse("Echec ajax")
                        user.save()
                        try:
                            agent = Agent(nom_agent=nom_agent,prenom_agent=nom_agent,user=user).save()
                        except:
                            user.delete()
                            return HttpResponse("Echec d'enregistrement du nouvel utilisateur !")
                        statut = "succes"
                        reponse = "Enregistrement effectué"
                data = {"reponse": reponse}
                reponse = json.dumps(data)
                mimetype = 'application/json'
                return HttpResponse(reponse, mimetype)
        else:
            form = RegisterForm()
            return render(request,"elec_meter/register.html",{"form":form})
    return HttpResponse("Erreur Ajax !")

我愿意接受任何评论和建议

0 个答案:

没有答案