型号.py
class Post(models.Model):
message = models.CharField(max_length=2000)
topic = models.ForeignKey(Topic, related_name="posts", null=True,
blank=True, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(User, null=True, blank=True,
on_delete=models.CASCADE)
like = models.IntegerField(default=0)
views = models.IntegerField(default=0)
class ReplyPost(models.Model):
reply = models.CharField(max_length=2000)
post = models.ForeignKey(Post, related_name="reply", null=True,
blank=True, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(User, null=True, blank=True,
on_delete=models.CASCADE)
视图.py
def reply_post(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = ReplyPostForm(request.POST)
if form.is_valid():
replypost = form.save(commit = False)
replypost.reply = form.cleaned_data.get("reply")
replypost.post = post
replypost.created_by = request.user
replypost.save()
return redirect("post", post.id)
else:
form = ReplyPostForm()
args = {
'form': form,
'post':post
}
return render(request, 'home/replypost.html', args)
网址.py
urlpatterns = [
#.....
url(r'^home/questions/(?P<pk>\d+)/reply/$', views.reply_post,
name="replypost"),
url(r'^home/questions/(?P<pk>\d+)/$', views.post, name="post"),
]
表单.py
class ReplyPostForm(ModelForm):
reply = forms.CharField(widget = forms.Textarea)
class Meta:
model = ReplyPost
fields = ('reply',)
错误:
ValueError. The view 'WebBoard.views.reply_post' didn't return an
'HttpResponse' object. It returned 'None' instead.
我不能理解代码有什么问题。如果上面的代码不足以理解,请更新我。你知道吗
当请求是
POST
但表单无效时,代码需要返回一个HttpResponse
实例。你知道吗查看您的代码,尝试将最后一行向后移动一个缩进级别;这样,所有不是有效形式的
POST
都将落入最后一个return语句中。你知道吗相关问题 更多 >
编程相关推荐