我将解释我的问题:
我正在使用评论系统,但是无法将数据插入表中。
我在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文档中查看了,,,什么都没有,我的方式还好吗? 谢谢大家!
答案 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()
,否则就让模板使用该绑定的表单实例进行渲染,以便您可以显示任何错误