Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render
- from basic_app.forms import UserForm,UserProfileInfoForm
- from django.urls import reverse
- from django.contrib.auth.decorators import login_required
- from django.http import HttpResponseRedirect,HttpResponse
- from django.contrib.auth import authenticate,login,logout
- # Create your views here.
- def index(request):
- return render(request,'basic_app/index.html')
- @login_required
- def user_logout(request):
- logout(request)
- return HttpResponseRedirect(reverse('index'))
- @login_required
- def special(request):
- return HttpRespnse("You are logged in")
- def register(request):
- registered=False
- if request.method=="POST":
- user_form=UserForm(data=request.POST)
- profile_form=UserProfileInfoForm(data=request.POST)
- if user_form.is_valid() and profile_form.is_valid():
- user=user_form.save()
- user.set_password(user.password)
- user.save()
- profile=profile_form.save(commit=False)
- profile.user=user
- if 'profile_pic' in request.FILES:
- profile.profile_pic=request.FILES['profile_pic']
- profile.save()
- registered=True
- else:
- print(user_form.errors,profile_form.errors)
- else:
- user_form=UserForm()
- profile_form=UserProfileInfoForm()
- return render(request,'basic_app/registration.html',{'user_form':user_form,'profile_form':profile_form,'registered':registered})
- def user_login(request):
- if request.method=='POST':
- username=request.POST.get('username')
- password=request.POST.get('password')
- user1=authenticate(username=username,password=password)
- if user1:
- if user1.is_active:
- login(request,user1)
- request.session.set_expiry(6000)
- return HttpResponseRedirect(reverse('index'))
- else:
- return HttpResponse("Account not active")
- else:
- print("Someone tried to login and failed")
- return HttpResponse("invalid login details")
- else:
- return render(request,'basic_app/login.html',{})
- ==============================================
- from django.conf.urls import include,url
- from basic_app import views
- app_name='basic_app'
- urlpatterns=[
- url(r'^register/$',views.register,name='register'),
- url(r'^user_login/$',views.user_login,name='user_login')
- ]
- """learning_users URL Configuration
- The `urlpatterns` list routes URLs to views. For more information please see:
- https://docs.djangoproject.com/en/2.1/topics/http/urls/
- Examples:
- Function views
- 1. Add an import: from my_app import views
- 2. Add a URL to urlpatterns: path('', views.home, name='home')
- Class-based views
- 1. Add an import: from other_app.views import Home
- 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
- Including another URLconf
- 1. Import the include() function: from django.urls import include, path
- 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
- """
- from django.contrib import admin
- from django.urls import path
- from django.conf.urls import url,include
- from basic_app import views
- urlpatterns = [
- url(r'^$',views.index,name='index'),
- url(r'^basic_app/',include('basic_app.urls')),
- path('admin/', admin.site.urls),
- url(r'^logout/$',views.user_logout,name='logout'),
- url(r'special/',views.special,name='special'),
- ]
- from django import forms
- from django.contrib.auth.models import User
- from basic_app.models import UserProfileInfo
- class UserForm(forms.ModelForm):
- password=forms.CharField(widget=forms.PasswordInput())
- class Meta():
- model=User
- fields=('username','email','password')
- class UserProfileInfoForm(forms.ModelForm):
- class Meta():
- model=UserProfileInfo
- fields=('portfolio_site','profile_pic')
- from django.db import models
- from django.contrib.auth.models import User
- # Create your models here.
- class UserProfileInfo(models.Model):
- user=models.OneToOneField(User,on_delete=models.CASCADE)
- portfolio_site=models.URLField(blank=True)
- profile_pic=models.ImageField(upload_to='profile_pics',blank=True)
- def __str__(self):
- return self.user.username
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement