Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 我有一个绑定的模型表单无效_Python_Django_Django Forms - Fatal编程技术网

Python 我有一个绑定的模型表单无效

Python 我有一个绑定的模型表单无效,python,django,django-forms,Python,Django,Django Forms,我试图创建一个链接到外部数据库的模型表单,当您提交表单时,外部数据库将得到更新。当我检查表单的有效性时,问题来了,它是无效的 我对此做了一些研究,发现最常见的问题是表单没有绑定,但当我使用print(form.non_field_errors)时,我得到: 您的HTML表单没有命名字段,因此表单无法获取这些字段。您也想使用表单进行呈现:您的HTML表单没有命名字段,因此表单无法获取字段。您也要使用表单进行渲染:您如何发送表单??在视图中,GET方法没有任何内容?html中输入字段的名称在哪里?如

我试图创建一个链接到外部数据库的模型表单,当您提交表单时,外部数据库将得到更新。当我检查表单的有效性时,问题来了,它是无效的

我对此做了一些研究,发现最常见的问题是表单没有绑定,但当我使用print(form.non_field_errors)时,我得到:
您的HTML表单没有命名字段,因此表单无法获取这些字段。您也想使用表单进行呈现:

您的HTML表单没有命名字段,因此表单无法获取字段。您也要使用表单进行渲染:

您如何发送表单??在视图中,GET方法没有任何内容?html中输入字段的名称在哪里?如何发送表单??在视图中,GET方法没有任何内容?html中输入字段的名称在哪里?
class MarketingEmails(models.Model):
    messageid = models.AutoField(db_column='column1', primary_key=True)
    subject = models.CharField(db_column='column2', max_length=2000)
    body = models.TextField(db_column='column3') #using a text field as there is no maximum length
    name = models.CharField(db_column='column4', max_length=25)
    altsubject = models.CharField(db_column='column5', max_length=2000)
    utm_source = models.CharField(db_column='column6', max_length=25)
    utm_content = models.CharField(db_column='column7', max_length=25)
    utm_campaign = models.CharField(db_column='column8', max_length=25)

class Meta:
    managed = False
    db_table = ''
class EmailForm(forms.ModelForm):
    class Meta:
        model = MarketingEmails
        fields = ['messageid','subject','body','name','altsubject','utm_source','utm_content','utm_campaign']
def emailinfo(request, pk):
    if request.session.has_key('shortname'):
        shortname =  request.session['shortname']
        rows = get_object_or_404(MarketingEmails, pk=pk)
        if request.method == 'POST':
            form = EmailForm(request.POST)
            print(form.errors)
            print(form.non_field_errors)
            if form.is_valid():
                form.save()
                print("form is valid")
                return redirect('marketingemails:emailinfo', pk = rows.messageid)

        return render(request, 'marketingemails/emailinfo.html',{'shortname': shortname, 'rows': rows})
    else:
        return HttpResponseRedirect(reverse('common:login'))
app_name = 'marketingemails'
urlpatterns = [
url(r'^marketing/emails/(?P<pk>[0-9]+)/$', marketingviews.emailinfo, name='emailinfo'),
]
        <form method="POST" class="post-form" action ="">
    {% csrf_token %}
        <label for="exampleTextarea">Name</label>
        <textarea class="form-control" id="exampleTextarea" rows="1">{{ rows.name }}</textarea>

        <label for="exampleTextarea">Subject</label>
        <textarea class="form-control" id="exampleTextarea" rows="1">{{ rows.subject }}</textarea>

        <label for="exampleTextarea">Alternative Subject</label>
        <textarea class="form-control" id="exampleTextarea" rows="1">{{ rows.altsubject }}</textarea>

        <label for="exampleTextarea">Body</label>
        <div class="ibox-content no-padding">
            <div class="summernote">
                {{ rows.body }}
            </div>
        </div>
        <label for="exampleTextarea">utm_source</label>
        <textarea class="form-control" id="exampleTextarea" rows="1">{{ rows.utm_source }}</textarea>

        <label for="exampleTextarea">utm_content</label>
        <textarea class="form-control" id="exampleTextarea" rows="1">{{ rows.utm_content }}</textarea>

        <label for="exampleTextarea">utm_campaign</label>
        <textarea class="form-control" id="exampleTextarea" rows="1">{{ rows.utm_campaign }}</textarea>

        <button type="submit" class="save btn btn-default">Save</button>
    </form>