Коды в одном из моих представлений не обрабатываются при доступе к этому представлению

#python #django #raspberry-pi

#python #django #raspberry-pi

Вопрос:

Мое намерение состоит в том, чтобы перейти от представления интерфейса -> переключить представление для обработки некоторых данных и отправки этих данных и перейти к -> тестовому представлению для отображения результата. Однако, похоже, что ничто в представлении switch не обрабатывается, и представление switch не меняется на тестовое представление после того, как я нажал «отправить» на userInterface.html. Я предполагаю, что проблема заключается в функции HttpResponseRedirect () или во всем, что связано с URL-путями. Все сработало с моим другим проектом, над которым я работал на своем компьютере. Я не уверен, что мне нужно изменить, чтобы использовать Django в RaspberryPi.

Сначала я обнаружил, что не импортировал библиотеки, необходимые для этих функций. После того, как я их импортировал, код все еще не работал.

Я закомментировал другие коды в представлении switch, которые ничего не делают с изменением представлений и просто фокусируются на изменении представления в моем представлении switch.

view.py

 def user_interface(request):
    return render(request,'zuumcoin/userInterface.html',
                  {})

def switch(request):
    return HttpResponseRedirect(reverse('zuumcoin:test'))

def test(request):
    return render(request,'zuumcoin/test.html',{})
  

userInterface.html

 ....
<form action="{% url 'zuumcoin:swicht' %} method = "POST">
    {% csrf_token %}
    ...
    ...
</form>
  

urls.py

 app_name='zuumcoin'
urlpatterns = [
   url(r'', views.user_interface, name='interface'),
   url(r'switch/', views.switch, name='switch'),
   url(r'test/', views.test, name='test')
]

  

Я ожидаю, что HttpResponseRedirect направит меня к тестовому представлению вместо того, чтобы застревать в переключаемом представлении. Если это возможно, я думаю, что смогу найти способ запустить другую часть моего кода в моем представлении switch.

Ответ №1:

Вы не завершили свои регулярные выражения. Итак, первый шаблон соответствует каждому пути.

Вы должны сделать:

    url(r'^$', views.user_interface...)
  

Комментарии:

1. Не забудьте принять ответ, как знак будущим поисковикам, что он решил вашу проблему.

Ответ №2:

Кажется, у вас опечатка в вашем userInterface.html шаблоне. измените это:

 {% url 'zuumcoin:swicht' %}
  

к этому:

 {% url 'zuumcoin:switch' %}
  

Комментарии:

1. Спасибо. На самом деле это была просто опечатка, когда я копировал код :))