2016-12-29 3 views
3

Я создаю простую форму в Django, которая принимает входные данные как имя пользователя, адрес электронной почты, пароль и добавляет их в базу данных. Теперь, когда я нажимаю кнопку отправки, диспетчер URL-адресов не перенаправляет, а также обновляет базу данных. Вот мой код:Диспетчер URL-адресов не работает

LoginForm \ urls.py (LoginForm как проект):

from django.conf.urls import url, include from django.contrib import admin 

app_name = 'authentication' 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^authentication/', include('authentication.urls',namespace="authentication")), 
    ] 

аутентификации \ urls.py (аутентификация в приложении):

from django.conf.urls import url 
from .import views 

urlpatterns = [ 
    url(r'^$',views.SignIn, name="sign_in"), 
    url(r'^register/$',views.Register, name="register"), 
    ] 

sign_in.html:

{% extends 'authentication/base.html' %} 

{% block body %} 

<div class="container"> 

    <div class="row"> 
     <div class="col-sm-offset-2 col-sm-8 col-md-offset-3 col-md-6 col-lg-offset-4 col-lg-4"> 
      <fieldset> 
       <legend> Register </legend> 
       <from method="post" action="{% url 'authentication:register' %}" > 
        {% csrf_token %} 
        <div > 
         <input name="username" type="username" placeholder="Username" class="form-control"> 
         <input name="email" type="email" placeholder="Email" class="form-control"> 
         <input name="password" type="password" placeholder="Password" class="form-control"> 
        </div> 
        <br> <button type="submit" class="btn btn-defaul"> Submit </button> 
       </from> 
      </fieldset> 
     </div> 
    </div> 

</div> 

{% endblock %} 

views.py:

from django.shortcuts import render 
from .models import users 

def SignIn(request): 
    return render(request,'authentication/sign_in.html') 

def Register(request): 
    register = users() 
    register.username = request.POST['username'] 
    register.email = request.POST['email'] 
    register.password = request.POST['password'] 
    register.save() 
    return render(request,'authentication/profile.html',{'username': register.username }) 

спасибо за вашу доброту :)

+1

Пробовали ли вы добавлять отчеты о регистрации в представления 'SignIn' и' Register', чтобы убедиться, что они вызываются? –

+1

В вашем шаблоне тег '

' ошибочно принят как ''. –

+0

На каком URL-адресе вы пытаетесь перенаправить после успешного регистрации.? –

ответ

1

Firestly обновить вид как:

from django.shortcuts import render,redirect 
from .models import users 

def SignIn(request): 
    return render(request,'authentication/sign_in.html') 

def Register(request): 
    register = users() 
    if request.method == 'POST': 
     register.username = request.POST['username'] 
     register.email = request.POST['email'] 
     register.password = request.POST['password'] 
     register.save() 
     return redirect('/your_new_url') 
    return render(request,'authentication/profile.html',{'username': register.username }) 

А во-вторых обновить HTML-код шаблона в fucntion форму as:

<form method="post" action="{% url 'authentication:register' %}" > 
    {% csrf_token %} 
    <div > 
     <input name="username" type="username" placeholder="Username" class="form-control"> 
     <input name="email" type="email" placeholder="Email" class="form-control"> 
     <input name="password" type="password" placeholder="Password" class="form-control"> 
    </div> 
    <br> 
    <button type="submit" class="btn btn-defaul"> Submit </button> 
</form> 
+0

Это сработало, но я смущен во взглядах – Ahtisham

+0

Это сработало, но я смущен в представлениях, которые вы сказали «return redirect (...)», а затем снова вызовите return render (...), но как это работает? я имею в виду, что вы можете вернуться из функции только один раз правильно? – Ahtisham

+0

@Ahtisham да, одно исполнение за раз, но вам нужно понять, что когда request.method == 'POST': это правда, то тогда будет возвращаться перенаправление, во всех остальных случаях рендер будет работать. –

Смежные вопросы