Во время работы на сервере я получаю код HTML в своем браузере - PullRequest
0 голосов
/ 08 апреля 2020

Когда я запускаю свой проект Django на локальном сервере. Он возвращает весь код html на веб-странице.

Как после выполнения команды python manage.py runserver и копирования и вставки URL-адреса в браузере, я получаю целый HTML код файла вместо элемента, который я использовал.

My Html file

{% extends "wfhApp/base.html" %}
{% block body_block %}

<div class="jumbotron">
  {% if registered %}
  <h1>Thank you for registration</h1>

  {% else %}
  <h1>Register here!</h1>
  <h3>Fill out the form:</h3>

  <form enctype="multipart/form-data" method="post">
    {% csrf_token %}
    {{ user_form.as_p }}

    <input type="submit" name="" value="Register">
  </form>

  {% endif %}
</div>

{% endblock %}

My views.py

from django.shortcuts import render
from wfhApp.forms import UserForm

def register(request):

    registered = False

    if request.method == 'POST':
        user_form = UserForm(data = request.POST)

        if user_form.is_valid():

            user = user_form.save()
            user.set_password(user.password)
            user.save()

            registered = True
        else:
            print(user_form.errors)
    else:
        user_form = UserForm

    return render(request, 'wfhApp/registration.html',
                                            {'user_form': user_form},
                                            {'registered': registered})

Выше - от наследования шаблонов.

1 Ответ

0 голосов
/ 08 апреля 2020

Не уверен на 101%, так как вы на самом деле не объяснили, что вы имели в виду под «Он возвращает весь html код на веб-странице», но здесь:

return render(request, 'wfhApp/registration.html',
                                        {'user_form': user_form},
                                        {'registered': registered})

вы не правильно передали шаблон контекст - или, точнее, вы передаете {'user_form': user_form} в качестве контекста и {'registered': registered} в качестве content_type ответа (который в противном случае был бы по умолчанию "text / html").

То, что вы хотите, это (разделены на две строки для удобства чтения):

context = {
    'user_form': user_form,
    'registered': registered
    }
return render(request, 'wfhApp/registration.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...