我在Django中的数据插入系统无法正常工作

时间:2018-08-14 21:32:49

标签: python django django-forms django-views

我将解释我的问题:

我正在使用评论系统,但是无法将数据插入表中。

我在forms.py文件中拥有一个基于模型的公式,然后在views.py文件中具有一个用于处理我输入的textarea数据的函数,然后是一个带有字段textarea的html文件,这是我的代码:

models.py:

class Commentary(models.Model):
    contents = models.CharField(max_length=500, null=True)
    created_at = models.DateTimeField(auto_now_add=True))
    edited_at = models.DateTimeField(null=True)  
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    author = models.ForeignKey(User, on_delete=models.CASCADE, null=True)

forms.py:

class CommentForm(forms.Form):
    contents = forms.CharField(widget=forms.Textarea, max_length=500, required=True)

views.py:

def createComment(request):
if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid:
            commentary = form.save(commit=False)
            author = request.user
            commentary.contents = contents
            commentary.author = author
            commentary.created_at = timezone.now()
            commentary.save()
        return redirect('/home')

read.html:

<textarea name="contents" required id="contents"></textarea>

我在论坛上和Django文档中查看了,,,什么都没有,我的方式还好吗? 谢谢大家!

1 个答案:

答案 0 :(得分:0)

您缺少的部分是需要使用result = choice(chosen1, chosen2)

ModelForm

其他一些常规提示:

  • 对于class CommentForm(forms.ModelForm): class Meta: model = models.Commentary fields = ['contents'] 请勿使用null=True
  • CharField是一种方法,而不是属性,因此您需要进行is_valid
  • 如果表单有效,您只想if form.is_valid(),否则就让模板使用该绑定的表单实例进行渲染,以便您可以显示任何错误