【发布时间】:2020-08-09 17:49:37
【问题描述】:
我目前有一个项目,人们可以在其中创建帖子。我想显示一条消息,说明帖子已成功投票,但 SuccessMessageMixin 不起作用。我尝试了其他方法,这些方法包含在我的代码中,我将在下面发布。 SuccessMessageMixin 适用于其他视图。我不确定为什么它不适用于此视图。
重定向代码不起作用的视图
class PostUpvoteRedirect(SuccessMessageMixin, RedirectView):
model = Post
success_message = "Post was upvoted successfully"
def get_redirect_url(self, *args, **kwargs):
obj = get_object_or_404(
Post,
publish__year=self.kwargs['year'],
publish__month=self.kwargs['month'],
publish__day=self.kwargs['day'],
slug=self.kwargs['post'],
)
url_ = obj.get_absolute_url()
user = self.request.user
if (user != None):
if user in obj.Upvote.all():
obj.Upvote.remove(user)
else:
obj.Upvote.add(user)
if user in obj.Downvote.all():
obj.Downvote.remove(user)
success_message = "Post was upvoted successfully"
return url_
有效的代码
class PostCreateView(SuccessMessageMixin, LoginRequiredMixin, CreateView):
model = Post
fields = ['title','body']
success_message = "Post was created successfully"
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
【问题讨论】:
-
问题解决了吗?
标签: python django django-views