render_to_response или перенаправление изменяет элементы шаблона в Django 1.8

Я пытаюсь проверить, существует ли идентификатор электронной почты, введенный пользователем в таблице базы данных, если он существует – я бы хотел направить шаблон «prof.html», иначе просто покажу сообщение в шаблоне login.html.

Оба условия работают нормально.

  • Как получить первый элемент в списке кортежей?
  • django syncdb и обновленная модель
  • Вход в Google Apps в django
  • Доступ к request.user в modelForm
  • Шаблон Django и трюк местных жителей
  • IOError: ошибка чтения данных запроса
  • Однако проблема заключается в том, что я использую redirect () или render_to_response () – элементы шаблона назначения, такие как div, input и т. Д., Автоматически изменяются (например, prof.html)?

    Можем ли мы также отправить контекстную информацию в шаблон назначения? (данные ответа или любой объект из базы данных и перенаправить на шаблон prof.html через представление в этом случае)

    Ниже мой код:

    Views.py

    def verifyme(request): if request.method == "POST": emailid4loginV = request.POST['emailid4login_Aj'] else: emailid4loginV = '' response_data = '' return HttpResponse(response_data, content_type="text/plain") response_data = '' if Employee.objects.filter(email = emailid4loginV).exists(): response_data='Thanks for waiting - login successful' #return render_to_response('app/prof.html', { 'response_data':response_data}, # context_instance = RequestContext( request ) ) return redirect('/myprofile') else: response_data='Ouch! you are not a registered user!' return HttpResponse(response_data, content_type="text/plain") 

    urls.py

     url(r'^myprofile$', 'app.views.profile', name='profile'), 

    Просто для вашей информации, представление «профиль» возвращает некоторые объекты из таблицы и отображает в приложении-шаблоне / prof.html.

    Я заметил, что шаблон назначения отображается в том же шаблоне login.html (как?: В url браузера, я не вижу myprofile, но тот, который нужно для входа в систему). Но когда я запрашиваю myprofile вручную, введя URL-адрес веб-сайта (localhost : xxxxx / myprofile), он отлично работает 🙁

    URL перед отправкой запроса в login.html:

    введите описание изображения здесь

    URL после отправки запроса в login.html – myprofile отображается на той же странице:

    введите описание изображения здесь

    Когда я вручную набираю URL-адрес, шаблон работает отлично. введите описание изображения здесь

    Не могли бы вы сообщить мне, что может быть проблемой?

    EDIT: Решил эту проблему с небольшим трюком, опубликованным ниже

    https://stackoverflow.com/questions/31091938/why-is-httpresponseredirectreverse-doesnt-redirect-to-new-page

  • Почему учетная запись администратора Django дает мне 403 ошибку CSRF?
  • Как отображать уведомления из `django-notification`?
  • Могу ли я использовать данные JSON для добавления новых объектов в Django?
  • Как использовать Django для получения имени для хост-сервера?
  • Разрешения Django-rest-framework для создания в viewet
  • Настройка Django с Eclipse - «Django not found»
  • One Solution collect form web for “render_to_response или перенаправление изменяет элементы шаблона в Django 1.8”

    1) На самом деле существует множество способов передачи данных в следующий вид … обычно в таких случаях, как у вас есть лучший способ – использование сеансов (cookie | localstorage | sessionstorage), это как буфер обмена … сохранение данных сеанса в одном представлении и получить его позже в другом. Например:

    Первый вид:

     self.request.session['response_data'] = 'some text' self.request.session.set_expiry(0) # user's session cookie will expire when the user's Web browser is closed. 

    Другие виды:

     response_data = self.request.session.get('response_data', '') 

    Но если вы планируете просто использовать эти данные в шаблоне, Django имеет для него более качественный интерфейс и в вашем случае семантически право использовать его – Структура сообщений https://docs.djangoproject.com/en/1.8/ref/ вно / сообщения /

    2) Если вы хотите перенаправить на другой вид, лучше используйте пространства имен URL-адресов и reverse https://docs.djangoproject.com/en/1.8/ref/urlresolvers/#reverse

     return HttpResponseRedirect(reverse(app.views.profile)) # here I've passed callable object because you have not show your app url namespace, but generally use namespaces 

    https://docs.djangoproject.com/en/1.8/topics/http/urls/#url-namespaces

    Python - лучший язык программирования в мире.