所以我想實現一個像後切換爲我的Django的博客 - 我期待重寫get_redirect_url使得用戶可以像在我的博客文章。我已經概述了類,如下所示:問題重寫get_redirect_url功能RedirectView的通用視圖
class PostLikeToggle(RedirectView):
def get_redirect_url(self, *args, **kwargs):
slug = self.kwargs.get("slug")
obj = get_object_or_404(Post, slug=slug)
url_ = obj.get_absolute_url()
self.request.user
if user.is_authenticated():
obj.likes.add(user)
return url_
然而,我認爲這個問題是我如何得到我的崗位目標 - 我目前正在做這在後塞。我一直想定義搜索引擎友好的帖子列表中,我因此所定義的URL模式如下:
url_patterns = [
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/'\
r'(?P<post>[-\w]+)/$', views.post_detail, name = 'post_detail'),
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/'\
r'(?P<post>[-\w]+)/like/$', views.PostLikeToggle.as_view(), name = 'post_like'),
]
我已經試過修訂上述通過在URL與<slug>
更換<post>
引用「鼻涕蟲」。沒有工作。然後我嘗試在get_redirect_url函數中定義post:
post = self.kwargs.get("post")
obj = get_object_or_404(Post, post=post)
再次,沒有工作。我只是嘗試各種各樣的事情來嘗試並使其發揮作用 - 但遺憾的是,還沒有運氣 - 所以我儘管在Django爭論不休的社區中將其拋棄給了更多經驗豐富的人。
謝謝。
麥金太爾嗨 - 真棒,這是現在的工作。謝謝。我已經接受了正確的答案(我可以看到你爲什麼有115k,然後一些!)。經過思考,你的建議很好的話,我應該保持'後= self.kwargs.get( 「後」)'和'使用OBJ = get_object_or_404(郵政,蛞蝓=後)'(而不是'OBJ = get_object_or_404(郵政,郵政=後)') –
是的,這是正確的,你的問題是你的努力後'='而不是'塞='了'get_object_or_404'。 – Alasdair