Django 限定输入,但被“form.is\u valid”检查无效`

Django 限定输入,但被“form.is\u valid”检查无效`,django,Django,我在表单中输入了符合条件的内容,但被表单检查为无效。是否有效 以下是我的观点: 我添加了print(request.POST)#测试输入以检查POSTed是否成功,以及print(“表单无效”)#断言无效以检查表单是否有效 class CommentCreateView(View): template_name = "article/article_detail.html" def get(self, request, pk): return redirect

我在表单中输入了符合条件的内容,但被
表单检查为无效。是否有效

以下是我的观点:
我添加了
print(request.POST)#测试输入
以检查
POST
ed是否成功,以及
print(“表单无效”)#断言无效
以检查表单是否有效

class CommentCreateView(View):

    template_name = "article/article_detail.html"

    def get(self, request, pk):
        return redirect(f"/article/detail/{ pk }")

    def post(self, request, pk):

        self.article = Article.objects.get(id=pk)
        form = CommentForm(request.POST)
        print(request.POST) # test input

        if form.is_valid():
            print("form is valid.")  #assert valid
            comment = form.save(commit=False)
            print(f"Comment: {form.cleaned_data}")
            comment.owner = request.user
            comment.article = self.article
            comment.status = 0
            comment.save()
            return redirect(f"/article/detail/{ pk }")
        else:
            print("form is invalid.") #assert invalid
            comments = (Comment.objects
                            .filter(article=self.article, status=0)
                            )
            context = {'article': self.article,
                        'comments':comments,
                        "form": form}
            return render(request, self.template_name, context)
注释
模型数据`:

class Comment(models.Model):
    STATUS = (
        (0,  'normal'),
        (-1, 'deleted'),
    )
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    comment = models.TextField() # set the widget
    status = models.IntegerField(choices=STATUS)
    date_created = models.DateTimeField(default=datetime.now)
    date_updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.comment
还有forms.py

class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ['comment', 'date_created']
        widgets = {'comment': forms.Textarea(attrs={'cols': 80})}
错误报告:

Django version 1.11.13, using settings 'forum.settings'
Starting development server at http: // 127.0.0.1: 8001/
Quit the server with CONTROL-C.
<QueryDict: {'csrfmiddlewaretoken': ['jL9aDh0cSNgvlmGWtI5sogFlruIvLh4rHqt0jll2V3H70Bel35IDFq6cgkWhAJHK'], 'comment': ['issue a test']} >
form is invalid.
[09/Jun/2018 13:12:32] "POST /article/comment/create/17 HTTP/1.1" 200 4183
Django 1.11.13版,使用设置“forum.settings” 正在http://127.0.0.1:8001启动开发服务器/ 使用CONTROL-C退出服务器。 表格无效。 [09/Jun/2018 13:12:32]“POST/article/comment/create/17 HTTP/1.1”200 4183
它检查了表单是否无效


如何解决这样一个问题?

你说如何解决这样一个问题是什么意思?您对限制性表单进行了检查,或者表单无效,因此用户应该修复他们发送的内容(您可以打印
表单.错误
,以帮助用户解决此问题)。乍一看,您似乎没有提供
创建日期
参数.ty,我将charfield改为textfield,但没有迁移@WillemVanOnsem