Boas,
Não consigo fazer nenhum registo. Estou a ter o erro abaixo:
OSError at /registar/
[Errno 22] Invalid argument: "C:\\Users\\martins.domingos\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages\\django\\contrib\\admin\\templates\\<WSGIRequest: POST '\\registar\\'>"
O Meu código é:
view.py:
from django.shortcuts import render, redirect
from django.views.generic.base import View
from usuarios.forms import RegistarUsuarioForm
from django.contrib.auth.models import User
from django.template.loader import render_to_string
from perfis.models import Perfil
# Create your views here.
class RegistarUsuariosView(View):
"""docstring for RegistarUsuariosView"""
template_nome = 'registar.html'
def get(self, request):
return render (request,self.template_nome)
def post(self, request):
form = RegistarUsuarioForm (request.POST)
if form.is_valid():
dados_form = form.data
usuario = User.objects.create_user (dados_form ['nome'],dados_form ['email'],dados_form ['senha'])
perfil = Perfil (nome = dados_form ['nome'],
email = dados_form ['email'],
telefone = dados_form ['telefone'],
empresa = dados_form ['empresa'],
usuario= usuario).save()
return redirect('index')
return render_to_string (request,self.template_nome, {'form', form})
#return render (request,self.template_nome, {'form', form})
forms.py:
from django import forms
from django.contrib.auth.models import User
class RegistarUsuarioForm(forms.Form): # Gerdar de forms.Form
#Classe RegistarUsuarioForm
nome = forms.CharField(required=True)
email = forms.EmailField(required = True)
senha = forms.CharField(required=True)
telefone = forms.CharField(required=True)
empresa = forms.CharField(required=True)
#Sobrescrever método is_valid do forms.Form
def is_valid (self):
valid = True
if not super(RegistarUsuarioForm, self).is_valid():
self.adiciona_erro('Por fvaor, verifica os dados informados')
valid = False
user_exists = User.objects.filter(username=self.data['nome']).exists()
#Verificar se o usuario existe
if user_exists:
self.adiciona_erro('Usuário já existe')
valid = False
return valid
def adiciona_erro(self, message):
erros = self._errors.setdefault(forms.forms.NON_FIELD_ERRORS, forms.utils.ErrorList())
erros.append(message)