2016-06-15 16 views
0

我得到兩個視圖,當我去url(view1)view1的模板完美工作,但是,在該模板中,我有一個鏈接發送給我的URL view2),當我點擊它時,瀏覽器會顯示屬於view1的錯誤。即使我手動輸入第二個網址,它也會向我顯示view1中的錯誤。當我離開它時,Django再次檢查我的ListView

瀏覽器URL

激活/?TPR = 2104813 & IDPR = 50

視圖1

class Activation_vw(ListView): 
    queryset = STATE.objects.order_by('name') 
    context_object_name = 'states_list' 
    template_name = 'activation.html' 

    def get(self, request, *args, **kwargs): 
     self.object_list = self.get_queryset() 
     tokenProspect_v = request.GET.get('tpr') 
     idProspect_v = request.GET.get('idpr') 

     preRegist_qr = PRE_REGIST_USER.objects.filter(
      id=idProspect_v).values('id', 'email', 'token') 

     if int(tokenProspect_v) != int(preRegist_qr[0]['token']): 
      msg_v = (
       "Wrong URL") 
      error_v = True 
     else: 
      request.session['idProspecto'] = idProspecto_v 
      msg_v = "" 
      error_v = False 

     context = self.get_context_data(msg=msg_v, error=error_v) 
     return self.render_to_response(context) 

模板1

{% if error %} 
    {{ msg | safe }} 
{% else %} 
    {% for state in states_list %} 
      <a href="activation-2?idState={{ state.id }}"> 
       <div>{{ state.name }} </div> 
      </a> 
    {% empty %} 
     <p>Empty list.</p> 
    {% endfor %} 
{% endif %} 

錯誤

類型錯誤在/活化-2 INT()參數必須是字符串或 數目,不是 'NoneType'

錯誤回溯

257. if int(tokenProspect_v) != int(preRegist_qr[0]['token']): 

線257所屬的廠景

編輯: 我忘了說: 如果我手動添加參數的廠景,它的工作原理一樣,如果Django是仍在加載的廠景

激活-2?idState = 5 & TPR = 2104813 & IDPR = 50

回答

0

我不知道你是如何與每個用戶生成您的令牌,

在這種情況下,您的令牌是無,您試圖強制轉換爲int

這可能是問題

+0

一個令牌已經在DB和otherone是在url作爲一個變量,當我加載的URL view1,一切正常。但是,當我嘗試加載view2在瀏覽器中更改url時,就像瀏覽器不斷加載view1。 – QUHO

+0

你可以展示你的兩個視圖的網址嗎? –

+0

我不知道會發生什麼,但我更改了urlpatterns的名稱,現在它可以正常工作。 這就像: urlpatterns = url(r'^ activation',Activation_vw.as_view(),name ='activation'),url(r'^ activation-2/$',Activation2_vw。as_view(),name ='activation-2')]' 我將它們的名稱更改爲'chooseState'和'chooseCity',它的工作原理 – QUHO

0

正如@Daniel羅斯曼說,問題是在URL模式的結尾,我沒有終止與$第一個表達式,所以它必須是這樣的:

urlpatterns = [ 
url(r'^activation$', Activation_vw.as_view(), name='activation'), 
url(r'^activation-2/$', Activation2_vw.as_view(), name='activation-2') 
] 
相關問題