Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- I made a profile model by extending the AbstractUser and from this model i made a RegisterForm . I am saving the profile through frontend but when i save it gives me
- AttributeError at /register/
- 'Profile' object has no attribute 'cleaned_data'
- here is my code:
- -----
- models.py
- from django.db import models
- from datetime import datetime
- from django.contrib.auth.models import AbstractUser
- class Profile(AbstractUser):
- is_seller = models.BooleanField('seller status', default=False)
- description = models.TextField(blank=True)
- register_date = models.DateTimeField(default=datetime.now, blank=True, null=True)
- photo = models.ImageField(upload_to='user', default='/home/shubham/Downloads/abc.png', null=True, blank=True)
- ----------------------
- froms.py
- from .models import Profile
- from django import forms
- class RegisterForm(forms.ModelForm):
- class Meta:
- model = Profile
- fields = ['username','email','first_name','last_name','password','is_seller','description', 'photo']
- def save(self, commit=True):
- user = super(RegisterForm, self).save(commit=False)
- user.set_password(self.cleaned_data['password'])
- if commit:
- user.save()
- return user
- ---------------------------------
- views.py
- from django.shortcuts import render
- from .froms import RegisterForm
- from django.contrib.auth import logout, login, authenticate
- # Create your views here.
- def register(request):
- if request.method == 'POST':
- form = RegisterForm(request.POST)
- if form.is_valid():
- form = form.save(commit=False)
- username = form.cleaned_data.get('username')
- raw_password = form.cleaned_data.get('password')
- user = authenticate(username=username, password=raw_password)
- form.save()
- login(request, user)
- return render(request, 'form.html', {'form': form})
- else:
- form = RegisterForm()
- return render(request,'accounts/register.html', {'form':form})
- .....................
- register.html
- {% extends 'base.html' %}
- {% load crispy_forms_tags %}
- {% block content %}
- <div class="container">
- <div class="row">
- <div class="col-md-8 col-sm-10 col-12">
- <h2>Sign up as a {{ user_type }}</h2>
- <form method="post">
- {% csrf_token %}
- <input type="hidden" name="next" value="{{ next }}">
- {{ form|crispy }}
- <button type="submit" class="btn btn-success">Sign up</button>
- </form>
- </div>
- </div>
- </div>
- {% endblock %}
Add Comment
Please, Sign In to add comment