Preciso gravar na models User do django um campo denominado "Role" do tipo 
boolean. Este campo vai ser True quando for um cliente se cadastrando e 
False para quando for um Fornecedor. A principio, no que tange visualmente, 
o campo aparece na tela e eu consigo marcar ele, mas seu valor não persiste 
no banco. Na verdade, ele nem precisaria aparecer, mas na via views.py eu 
gostaria de quando "origin" fosse igual a 'Client' o valor seria True e 
False quando 'Provider'. 

*models.py*

class Role(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# Adicionando os campos
role = models.BooleanField(default=False)

def __str__(self):
return self.user.username

*views.py*

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import authenticate, login
from django.conf import settings
from .forms import RegisterForm

def register(request, origin):
template_name = '../templates/register.html'
if request.method == 'POST':
form = RegisterForm(request.POST)
if form.is_valid():
user = form.save()
user = authenticate( 
username=user.username,password=form.cleaned_data['password1']
) 
login(request,user)
return redirect('qnow_client:quotation_client')
#return <https://www.facebook.com/hashtag/return?source=note&epa=HASHTAG> 
HttpResponse("<h1>Área do marceneiro</h1>")

else:
form = RegisterForm()
context = {
'origin': origin,
'active_page_client_provider':'active',
'form': form
}
return render(request, template_name,context)

*forms.py*

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class RegisterForm(UserCreationForm):

email = forms.EmailField(label='E-mail')
role = forms.BooleanField(label='Cliente')

def clean_email(self):
email = self.cleaned_data['email']
if User.objects.filter(email=email).exists():
raise forms.ValidationError('Já existe usuário com este E-mail!')
return email

def save(self):
user = super(RegisterForm, self).save(commit=False)
user.email = self.cleaned_data['email']
user.save()
return user

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/32eda923-d981-4cd9-8966-be2285f019c3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to