i currently try to "style" my registration form. in General i get the
concept behind it but not at that point:
This is how it's intendet to be (and not working):
class RegistrationForm(UserCreationForm):
> username = forms.CharField(required=True, label='Username',
> widget=forms.TextInput(attrs={'class': 'class-one-input-fields'}))
> password1 = forms.CharField(required=True, label='Password',
> widget=forms.PasswordInput(attrs={'class': 'class-one-input-fields'}))
> password2 = forms.CharField(required=True, label='Password
> confirmation', widget=forms.PasswordInput(attrs={'class':
> 'class-one-input-fields'}))
> pubpgp = forms.CharField(required=True, label='Public PGP Key',
> widget=forms.Textarea(attrs={'class': 'class-two-input-fields'}))
> captcha = CaptchaField()
>
> def save(self, commit=True):
> username = super(RegistrationForm, self).save(commit=False)
> username.pubpgp = self.cleaned_data['pubpgp']
>
> if commit:
> username.save()
>
> return username
views.py:
def signup (request):
> if request.method == 'POST':
> form = RegistrationForm(request.POST)
> if form.is_valid():
> form.save()
> messages.add_message(request, messages.INFO, "Thanks for
> you registration, you are now able to login.")
> return redirect(reverse('post_list'))
> else:
> form = RegistrationForm()
>
> args = {'form': form}
> return render(request, 'registration/signup.html', args)
The error i get is:
> AttributeError: Manager isn't available; 'auth.User' has been swapped
> > for 'accounts.User'
in my settings.py i set:
> AUTH_USER_MODEL = 'accounts.User'
This is the current working state:
class RegistrationForm(UserCreationForm):
> user = forms.CharField(required=True)
>
> class Meta:
> model = User
> fields = (
> 'user',
> 'password1',
> 'password2',
> 'pubpgp'
> )
>
> captcha = CaptchaField()
>
> def save(self, commit=True):
> user = super(RegistrationForm, self).save(commit=False)
> user.pubpgp = self.cleaned_data['pubpgp']
>
> if commit:
> user.save()
>
> return user
User model of accounts:
#User Model Manager
> class UserManager(BaseUserManager):
> def create_user(self, user, password=None):
> """
> Creates and saves a User with the given username and password.
> """
> if not user:
> raise ValueError('Error: The User you want to create must
> have a username, try again')
>
> new_user = self.model(
> user=self.model.normalize_username(user)
> )
>
> new_user.set_password(password)
> new_user.save(using=self._db)
> return new_user
>
> def create_staffuser(self, user, password):
> """
> Creates and saves a staff user with the given username and
> password.
> """
> new_user = self.create_user(
> user,
> password=password,
> )
> new_user.staff = True
> new_user.save(using=self._db)
> return new_user
>
> def create_superuser(self, user, password):
> """
> Creates and saves a superuser with the given username and
> password.
> """
> new_user = self.create_user(
> user,
> password=password,
> )
> new_user.staff = True
> new_user.admin = True
> new_user.save(using=self._db)
> return new_user
>
>
> class User(AbstractBaseUser):
>
> #User fields
> user =
> models.CharField(verbose_name='username',max_length=30,unique=True)
> bio = models.TextField(max_length=5000, blank=True, null=True)
> pubpgp = models.TextField(blank=True, null=True)
> avatar = fields.ImageField(upload_to='avatar', blank=True,
> null=True, dependencies=[
> FileDependency(processor=ImageProcessor(
> format='JPEG', scale={'max_width': 350, 'max_height':
> 350}))
> ])
>
> #Account typs
> active = models.BooleanField(default=True)
> staff = models.BooleanField(default=False) # a admin user; non
> super-user
> admin = models.BooleanField(default=False) # a superuser
> # notice the absence of a "Password field", that's built in.
>
> USERNAME_FIELD = 'user'
> REQUIRED_FIELDS = [] # Username & Password are required by default.
>
> def get_full_name(self):
> # The user is identified by their Username ;)
> return self.user
>
> def get_short_name(self):
> # The user is identified by their Username address
> return self.user
> def __str__(self):
> return self.user
>
> def has_perm(self, perm, obj=None):
> """Does the user have a specific permission?"""
> # Simplest possible answer: Yes, always
> return True
>
> def has_module_perms(self, app_label):
> """Does the user have permissions to view the app
> `app_label`?"""
> # Simplest possible answer: Yes, always
> return True
>
> @property
> def is_staff(self):
> """Is the user a member of staff?"""
> return self.staff
>
> @property
> def is_admin(self):
> """Is the user a admin member?"""
> return self.admin
>
> @property
> def is_active(self):
> """Is the user active?"""
> return self.active
>
> objects = UserManager()
i guess that i have to pass the User model into this form somehow. Any idea
about the syntax?
--
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 [email protected].
To post to this group, send email to [email protected].
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/ad1df517-48ca-4379-913c-e94f32cc063f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.