django項目 crm登錄 註冊
阿新 • • 發佈:2018-09-27
取出 使用 rect ror 保存 校驗 esp then 表名 簡便添加數據:
在app下的admin下添加表名:
admin.site.register(models.Customer) #前邊的的進行註冊
admin.site.register(models.ClassList)
admin.sit.register(mdoels.Campuses)
然後打開網頁輸入admin即可,
form 的操作:
1,使用forms.ModelForm:(可以取出表的內容)
除了表內的另外的需要自己添加:
2,def clean(self):(進行自定義校驗)第一種方法
if self.cleaned_data.get(‘password‘) != self.cleaned_data.get(‘re_password‘):
self.add_error(‘re_password‘,‘兩次密碼不一致‘)
raise ValidationError
return self.clean_data
3,class Meta:(對字段進行配置)
model = models.UserProfile 進行引入
fieds = ‘__all__‘ 全部
fields = [‘username‘,‘password‘ ] 部分
exclude = [‘is_active‘] 除了 這裏的is_active,在註冊時必須要填寫
labels={
‘username‘:‘用戶名‘
}
error_messages = {
‘username‘:{
‘required‘:‘必填‘
}
}
widgets = {
‘password‘:froms.widgets.Passwordput(‘class‘:‘form-control‘)
}
def __init__(self,*args,**kwargs)
super().__init__(*args,**kwargs)
for filed in self.fields.values():
filed.widget.attrs.update({‘class‘:‘form-control‘})
兩種方法來創建賬戶:
# form_obj.cleaned_data.pop(‘user_permissions‘)
# form_obj.cleaned_data.pop(‘groups‘)
# form_obj.cleaned_data.pop(‘re_password‘)
# models.UserProfile.objects.create_user(**form_obj.cleaned_data)
user = form_obj.save()
user.set_password(user.password)
user.save()
實例:
admin:
from django.contrib import admin
from crm import models
# Register your models here.
admin.site.register(models.Customer)
admin.site.register(models.ClassList)
admin.site.register(models.Campuses)
froms:
from django import forms
from crm import models
from django.core.exceptions import ValidationError
class RegForm(forms.ModelForm):
re_password = forms.CharField(label=‘確認密碼‘,min_length=6, widget=forms.widgets.PasswordInput(attrs={"class": ‘form-control‘}))
def clean(self):
if self.cleaned_data.get(‘password‘) != self.cleaned_data.get(‘re_password‘):
self.add_error(‘re_password‘, ‘兩次密碼不一致‘)
raise ValidationError(‘兩次密碼不一致‘)
return self.cleaned_data
class Meta:
model = models.UserProfile
fields = ‘__all__‘
# fields = [‘username‘, ‘password‘]
exclude = [‘is_active‘, ]
labels = {
‘username‘: ‘用戶名‘,
‘name‘: ‘真實姓名‘,
‘password‘: ‘密碼‘,
# ‘re_password‘: ‘確認密碼‘,
}
error_messages = {
‘username‘: {
‘required‘: ‘必填‘,
‘min_length‘: ‘最小長度為6個‘
},
‘re_password‘:{
‘min_length‘: ‘最小長度為6個‘
}
}
widgets = {
‘password‘: forms.widgets.PasswordInput(attrs={"class": ‘form-control‘}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for filed in self.fields.values():
filed.widget.attrs.update({"class": "form-control"})
views:
from django.shortcuts import render, redirect, HttpResponse
from django.contrib import auth
from crm.forms import RegForm
from crm import models
def login(request):
error_msg = ‘‘
if request.method == ‘POST‘:
username = request.POST.get(‘username‘)
password = request.POST.get(‘password‘)
user = auth.authenticate(request, username=username, password=password)
if user:
auth.login(request, user)
return redirect(‘/index/‘)
else:
error_msg = ‘用戶名或密碼錯誤‘
return render(request, ‘login.html‘, {"error_msg": error_msg})
def reg(request):
form_obj = RegForm()
if request.method == ‘POST‘:
form_obj = RegForm(request.POST)
print(form_obj.cleaned_data)
if form_obj.is_valid():
print(form_obj.cleaned_data)
# 保存數據
# form_obj.cleaned_data.pop(‘user_permissions‘)
# form_obj.cleaned_data.pop(‘groups‘)
# form_obj.cleaned_data.pop(‘re_password‘)
# models.UserProfile.objects.create_user(**form_obj.cleaned_data)
# password = form_obj.cleaned_data.get(‘password‘)
user = form_obj.save()
user.set_password(user.password)
user.save()
return redirect(‘/login/‘)
return render(request, ‘reg.html‘, {"form_obj": form_obj})
django項目 crm登錄 註冊