i new django, have basics of python @ least. summer working on webapp work in unison (hopefully) fortran code. fortran code generates data, , registration system, users should have access database of data fortran code creates.
so far have general template homepage , trying implement registration button , login form homepage. starting page, want users able press register button, redirected form asks basic information such name, email etc. sent confirmation email , clicking link account should activated. next it, login button should there fields username (the email) , password. if username/password wrong, should add text saying wrong username/password not redirecting other page.
for working on login part only. problem having though page shows login button , not fields fill out username , passwords.
here setup of base.html
<div class="page-header"> {% if not user.is_authenticated %} <h1>hello , welcome code!</h1> <div class="right"> {% if form.errors %} <p>your username , password didn't match. please try again.</p> {% endif %} <form> {% csrf_token %} <table> <tr> <td>{{ form.username.label_tag }}</td> <td>{{ form.username }}</td> </tr><tr> <td>{{ form.password.label_tag }}</td> <td>{{ form.password }}</td> </tr> </table> <input type="submit" value="login" /> <input type="hidden" name="next" value="{{next}}"/>
regarding registration process , user handling, app preferred django 1.8+? have heard django-registration not updated anymore, , django-registration-redux have problems getting work due error:
django.core.exceptions.appregistrynotready: models aren't loaded yet.
which can't seem fix using suggested solutions. allauth tried diving in to, thought maybe can find better alternatives here suggestions here.
many in advance help!
urls.py
from django.conf.urls import url . import views urlpatterns = [ url(r'^register/$', views.register, name='register'), url(r'^login/$', views.login, name='login'), url(r'^logout/$', views.logout, name='logout'), ] register.html <-- registration form
<form method="post" action=""> {% csrf_token %} <input type="text" name="username" placeholder="username"/> <input type="text" name="first_name" placeholder="first name"/> <input type="text" name="last_name" placeholder="last name"/> <input type="text" name="email" placeholder="email address"/> <input type="password" name="password" placeholder="password"/> <input type="submit" value="register"/> </form> login.html <-- login form
<form method="post" action=""> {% csrf_token %} <input type="text" name="username" placeholder="username"/> <input type="password" name="password" placeholder="password"/> <input type="submit" value="login"/> </form> views.py
def register(request): if request.method == "post": username = request.post['username'] fname = request.post['first_name'] lname = request.post['last_name'] email = request.post['email'] password = request.post['password'] u = user.objects.create_user(username, email, password, first_name=fname, last_name=lname) u.save() return httpresponse("registration complete! please head on <a href='/login/'>login page</a> start using website.") return render(request, "app/register.html", {}) def login(request): if request.method == "post": mobile = request.post['username'] password = request.post['password'] user = authenticate(username=username, password=password) if user not none: if user.is_authenticated: login(request, user) return httpresponseredirect('/home/') else: return httpresponse("this user not active. please contact support@company.com") else: return httpresponseredirect('/login/') return render(request, "app/login.html", {}) def logout(request): logout(request) return httpresponseredirect('/login/') all templates ( html files ) inside app folder. purpose of answer let's assume app called app. folder structure app/templates/app/ , template files register.html, login.html. stripped down version of project worked on. hope helps. i've learned method of registration , login youtube channel of mike hibbert. search , watch videos.
p.s. if can make login work take localhost:8000/home/ haven't provided url or view on here. make 1 on own.
Comments
Post a Comment