我一直试图在我的网站的论坛上添加评论,并且设法达到了查看评论表单的阶段。但是,当您实际提交评论表格时,出现以下错误。
仅供参考,“ 2020年有哪些良好的营销活动?”是我也想添加评论的帖子的名称。
以下是使用的模型:
class Comment(models.Model):
post = models.ForeignKey(Post, related_name='comments')
user_name = models.CharField(max_length=250)
email = models.EmailField()
content = models.TextField()
created_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user_name
class Post(models.Model):
creator_id = models.ForeignKey(User, null=False, default=1)
title = models.CharField(max_length=200)
content = models.TextField()
created_date = models.DateTimeField(auto_now_add=True)
published_date = models.DateTimeField(blank=True, null=True, default=timezone.now)
views = models.IntegerField(default=0)
category = models.CharField(choices=CATEGORY_CHOICES, max_length=30, blank=True, null=True)
image = models.ImageField(upload_to="img", blank=True, null=True)
def __str__(self):
return self.title
以下是使用的视图:
def comment_post_form(request, pk):
""" Create a view that allows us to add a comment """
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = CommentPostForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post
comment.save()
return redirect('forum_post_details.html', {'post': post})
else:
form = CommentPostForm()
return render(request, 'comment_post_form.html', {'form': form})
以下是使用的表格:
class CommentPostForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['content']
以下是模板中使用的“ for”语句:
{% for comment in comments %}
<p>{{ comment.created_date }}</p>
<p>{{ comment.user_name }}</p>
<p>{{ comment.content }}</p>
{% empty %}
<p>No comments added. Why not be the first!</p>
{% endfor %}
我们非常感谢您的帮助,如果您需要其他任何帮助,请告诉我:)
答案 0 :(得分:0)
重定向的方式不是您的操作方式。您可以通过多种方式使用redirect()函数。
url.py
path('teacherprofile/', views.teacher_profile_view, name='teacher-profile'),
views.py
通过传递视图名称
return redirect('teacher-profile')
通过传递硬编码URL重定向到:
return redirect(teacherprofile/)
这也适用于完整的URL:
return redirect('https://example.com/')
通过这种方式,用户可以重定向html页面本身。