2013-04-07 41 views
0

我在我的模型中有一個方法,其中我有我的邏輯。我想要一個調用這個方法並重定向的視圖。在Django 1.5中執行動作和重定向

我猜是這樣的:

class EmailMakePrimary(RedirectView): 
    url = reverse('settings') 

    def get(self, *args, **kwargs): 
     self.make_primary() 
     return HttpResponseRedirect(self.url) 

我已經試過

class ArticleCounterRedirectView(RedirectView): 
    def get_redirect_url(self, pk): 
     article = get_object_or_404(Article, pk=pk) 
     article.update_counter() 
     return reverse('product_detail', args=(pk,)) 

和它的作品了幾次,但只是突然停止工作。

+0

您是否通過本教程Django的瀏覽?它會幫助你做到這一點。 – 2013-04-07 08:15:04

+0

我試過 類ArticleCounterRedirectView(RedirectView的): 高清get_redirect_url(個體經營,PK): 文章= get_object_or_404(文章,PK = PK) article.update_counter() 回報反向( 'product_detail',ARGS =( pk,)) 它工作了幾次,但突然停止工作。該方法根本不會被調用,所以我想知道是否有更正確的方法。 – user2232982 2013-04-07 08:19:28

+0

你能用你試過的更新你的問題嗎? – 2013-04-07 08:20:48

回答

0

如果您要更改某些內容,那麼對服務器使用POST http請求是一種很好的做法。例如,POST請求永遠不會被緩存。

例如:

class EmailMakePrimary(View): 
    url = reverse('settings') 

    def post(self, *args, **kwargs): 
     self.make_primary() 
     return HttpResponseRedirect(self.url) 
+0

我更喜歡POST,但我不知道如何製作HTML。我需要幾個按鈕來爲每條記錄做不同的事情,所以我不能使用簡單的提交。 – user2232982 2013-04-08 08:04:14

+0

你可以使用多個'

'並查看函數或多個'>'並在request.POST'中使用'if'foo'。 – Udi 2013-04-09 10:02:01