私は2つのビューを持っています。私はURL(view1)に行くとview1のテンプレートは完全に機能しますが、そのテンプレートではURL view2)、ブラウザをクリックするとview1に属するエラーが表示されます。手動で2番目のURLを入力しても、view1からのエラーが表示されます。Djangoは私がそれを残しているときにListViewをもう一度チェックしています
ブラウザのURL
活性化/?TPR = 2104813 & IDPR = 50
View1を
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)
Template1を
{% 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 %}
エラー
はTypeErrorに/活性化-2 INT()の引数が文字列または 数ではなく、 'NoneType'
エラートレースバック
なければなりません257. if int(tokenProspect_v) != int(preRegist_qr[0]['token']):
ライン257は、VIEW1に編集
を所属: 私が言うのを忘れ: 私は手動でVIEW1のパラメータを追加した場合DjangoはまだVIEW1に
活性化をロードしている場合、それはのように動作します-2?idState = 5 & TPR = 2104813 & IDPR = 50
1つのトークンはすでにDBにあり、もう1つは変数としてURLに入っています。 view1、すべてが完璧に動作します。しかし、ブラウザでURLを変更してview2をロードしようとすると、ブラウザが代わりにview1をロードし続けるようになります。 – QUHO
両方のビューのURLを表示できますか? –
何が起こるのかわかりませんが、私はurlパターンで名前を変更しました。 URL: url(r '^ activation-2/$'、Activation2_vw。'名前を 'chooseState'と 'chooseCity'に変更しても動作します。 – QUHO