I've used as a model AbstractUser extended by custom fields, created form automatically by ModelForm. The problem is that, users except superuser cannot log in to system. I think it's reason, their passwords are not hashing. Where should I make it ? Here are my codes.
forms.py:
class CustomUserSignUpForm(ModelForm): class Meta: model = CustomUser fields = ['username', 'password', 'user_image', 'role', 'branch', 'license_number', 'fin_number', 'first_name', 'last_name', 'patronymic', 'phone_number', 'email', 'voen_number', 'is_active'] views.py:
def sign_up(request): if request.method == 'POST': form = CustomUserSignUpForm(request.POST) if form.is_valid(): form.save() else: form = CustomUserSignUpForm() context = { 'form': form, } return render(request, 'sign_up.html', context) models.py:
class CustomUser(AbstractUser): patronymic = models.CharField(_('Ata adı'), max_length=150, blank=True) role = models.ForeignKey(Role, on_delete=models.CASCADE, blank=True, null=True) user_image = models.FileField(_('Profil şəkli'), upload_to='static/assets/images/user-images', blank=True) branch = models.ForeignKey(Branch, on_delete=models.CASCADE, blank=True, null=True) phone_number = models.CharField(_('Telefon'), max_length=20, blank=True) voen_number = models.CharField(_('VÖEN'), max_length=30, blank=True) fin_number = models.CharField(_('FİN'), max_length=20, blank=True) license_number = models.CharField(_('Lisenziya'), max_length=40, blank=True) def __str__(self): return self.username