Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 2表单无效,即使在有效表单数据上也无法工作_Python_Django_Django Forms_Django 2.0_Django Validation - Fatal编程技术网

Python Django 2表单无效,即使在有效表单数据上也无法工作

Python Django 2表单无效,即使在有效表单数据上也无法工作,python,django,django-forms,django-2.0,django-validation,Python,Django,Django Forms,Django 2.0,Django Validation,我正在开发一个非常简单的表单来在Django(2)中发布数据,但总是将表单作为无效表单,因为form.is\u valid()没有被调用 以下是我目前掌握的情况: 来自models.py: class UserGroup(models.Model): email = models.EmailField(primary_key=True) group = models.CharField(max_length=250, default='notingroup') def

我正在开发一个非常简单的表单来在Django(2)中发布数据,但总是将表单作为无效表单,因为
form.is\u valid()
没有被调用

以下是我目前掌握的情况:

来自
models.py

class UserGroup(models.Model):
    email = models.EmailField(primary_key=True)
    group = models.CharField(max_length=250, default='notingroup')

    def __str__(self):
        return self.group
class UserGroupForm(forms.ModelForm):
    class Meta:
        model = UserGroup
        fields = ('group', 'email')
def group_name(request):
    error = ''
    if request.method == 'POST':
        print(request.POST['email'])
        group_form = UserGroupForm(request.POST)
        print(group_form)
        if group_form.is_valid():
            ug_obj = UserGroup()
            ug_obj.group = group_form.cleaned_data['group']
            ug_obj.email = group_form.cleaned_data['email']
            ug_obj.save()
            return JsonResponse({"message": 'Got it inside valid'})

        else:
            error = 'Something went wrong'
            print(error)

        return JsonResponse({"message": 'an error occurs!'})
<form method="post" id="gitForm" action="javascript:call_my_form()">
                {% csrf_token %}
                <label>Groupname: </label>
                <input id="user_email" type="text" value="{{ user.email }}" hidden>
                <input id="input" type="text" class="">
                <input type="submit" value="Mehet" class="btn btn-primary">
       <div id="error" style="color:red"></div>
</form>
function call_my_form() {
    $(document).on('submit', '#gitForm', function (e) {
        e.preventDefault();
        console.log($('#input').val());
        console.log($('#user_email').val());
        $.ajax({
            type: 'POST',
            url: '/groupname',
            data: {
                group: $('#input').val(),
                email: $('#user_email').val(),
                csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
            },
            success: function (jsonResponse) {
                document.getElementById("demo").innerHTML = jsonResponse.message;

            }
        }).done(function (jsonResponse) {
            document.getElementById("demo").innerHTML = jsonResponse.message;
        })
    });
}
来自
forms.py

class UserGroup(models.Model):
    email = models.EmailField(primary_key=True)
    group = models.CharField(max_length=250, default='notingroup')

    def __str__(self):
        return self.group
class UserGroupForm(forms.ModelForm):
    class Meta:
        model = UserGroup
        fields = ('group', 'email')
def group_name(request):
    error = ''
    if request.method == 'POST':
        print(request.POST['email'])
        group_form = UserGroupForm(request.POST)
        print(group_form)
        if group_form.is_valid():
            ug_obj = UserGroup()
            ug_obj.group = group_form.cleaned_data['group']
            ug_obj.email = group_form.cleaned_data['email']
            ug_obj.save()
            return JsonResponse({"message": 'Got it inside valid'})

        else:
            error = 'Something went wrong'
            print(error)

        return JsonResponse({"message": 'an error occurs!'})
<form method="post" id="gitForm" action="javascript:call_my_form()">
                {% csrf_token %}
                <label>Groupname: </label>
                <input id="user_email" type="text" value="{{ user.email }}" hidden>
                <input id="input" type="text" class="">
                <input type="submit" value="Mehet" class="btn btn-primary">
       <div id="error" style="color:red"></div>
</form>
function call_my_form() {
    $(document).on('submit', '#gitForm', function (e) {
        e.preventDefault();
        console.log($('#input').val());
        console.log($('#user_email').val());
        $.ajax({
            type: 'POST',
            url: '/groupname',
            data: {
                group: $('#input').val(),
                email: $('#user_email').val(),
                csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
            },
            success: function (jsonResponse) {
                document.getElementById("demo").innerHTML = jsonResponse.message;

            }
        }).done(function (jsonResponse) {
            document.getElementById("demo").innerHTML = jsonResponse.message;
        })
    });
}
来自
视图.py

class UserGroup(models.Model):
    email = models.EmailField(primary_key=True)
    group = models.CharField(max_length=250, default='notingroup')

    def __str__(self):
        return self.group
class UserGroupForm(forms.ModelForm):
    class Meta:
        model = UserGroup
        fields = ('group', 'email')
def group_name(request):
    error = ''
    if request.method == 'POST':
        print(request.POST['email'])
        group_form = UserGroupForm(request.POST)
        print(group_form)
        if group_form.is_valid():
            ug_obj = UserGroup()
            ug_obj.group = group_form.cleaned_data['group']
            ug_obj.email = group_form.cleaned_data['email']
            ug_obj.save()
            return JsonResponse({"message": 'Got it inside valid'})

        else:
            error = 'Something went wrong'
            print(error)

        return JsonResponse({"message": 'an error occurs!'})
<form method="post" id="gitForm" action="javascript:call_my_form()">
                {% csrf_token %}
                <label>Groupname: </label>
                <input id="user_email" type="text" value="{{ user.email }}" hidden>
                <input id="input" type="text" class="">
                <input type="submit" value="Mehet" class="btn btn-primary">
       <div id="error" style="color:red"></div>
</form>
function call_my_form() {
    $(document).on('submit', '#gitForm', function (e) {
        e.preventDefault();
        console.log($('#input').val());
        console.log($('#user_email').val());
        $.ajax({
            type: 'POST',
            url: '/groupname',
            data: {
                group: $('#input').val(),
                email: $('#user_email').val(),
                csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
            },
            success: function (jsonResponse) {
                document.getElementById("demo").innerHTML = jsonResponse.message;

            }
        }).done(function (jsonResponse) {
            document.getElementById("demo").innerHTML = jsonResponse.message;
        })
    });
}
来自
html模板

class UserGroup(models.Model):
    email = models.EmailField(primary_key=True)
    group = models.CharField(max_length=250, default='notingroup')

    def __str__(self):
        return self.group
class UserGroupForm(forms.ModelForm):
    class Meta:
        model = UserGroup
        fields = ('group', 'email')
def group_name(request):
    error = ''
    if request.method == 'POST':
        print(request.POST['email'])
        group_form = UserGroupForm(request.POST)
        print(group_form)
        if group_form.is_valid():
            ug_obj = UserGroup()
            ug_obj.group = group_form.cleaned_data['group']
            ug_obj.email = group_form.cleaned_data['email']
            ug_obj.save()
            return JsonResponse({"message": 'Got it inside valid'})

        else:
            error = 'Something went wrong'
            print(error)

        return JsonResponse({"message": 'an error occurs!'})
<form method="post" id="gitForm" action="javascript:call_my_form()">
                {% csrf_token %}
                <label>Groupname: </label>
                <input id="user_email" type="text" value="{{ user.email }}" hidden>
                <input id="input" type="text" class="">
                <input type="submit" value="Mehet" class="btn btn-primary">
       <div id="error" style="color:red"></div>
</form>
function call_my_form() {
    $(document).on('submit', '#gitForm', function (e) {
        e.preventDefault();
        console.log($('#input').val());
        console.log($('#user_email').val());
        $.ajax({
            type: 'POST',
            url: '/groupname',
            data: {
                group: $('#input').val(),
                email: $('#user_email').val(),
                csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
            },
            success: function (jsonResponse) {
                document.getElementById("demo").innerHTML = jsonResponse.message;

            }
        }).done(function (jsonResponse) {
            document.getElementById("demo").innerHTML = jsonResponse.message;
        })
    });
}
我正在将正确的数据输入视图,但仍然是
表单。是否有效()
未被调用

以下是输出:

**********@mail.com
组:
电子邮件:
  • 已使用此电子邮件的用户组 存在。

出了点问题[18/Jul/2019 09:47:47] “POST/groupname HTTP/1.1”200 31


正如您的输出中所说:
包含此电子邮件的用户组已经存在。


所以你试图提交一封已经存在的电子邮件。这就是为什么您的
表单.is\u valid()
没有被调用。

您应该在else块中打印
组表单.errors
,以准确查看问题所在。更好的是,在JSONResponse中返回它,因为电子邮件是主键,它是唯一的,因此您使用了相同的电子邮件地址。