Я делаю проект Django, в котором есть два типа пользователей: клиенты и рестораны. Оба могут зарегистрироваться отдельно. Все работает нормально, за исключением того, что я не могу добавить класс CSS в поле пароля, а вокруг поля пароля отображается предупреждение, которое я не знаю, как они появляются.
Models.py
class User(AbstractUser):
is_customer = models.BooleanField(default=False)
is_restaurant = models.BooleanField(default=False)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
class Customer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
food_pref = models.CharField(max_length=10, default='veg')
class Restaurant(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
Forms.py, извините за вставку неверного кода. Просто для пояснения класс CustomerSignupform является родительским.
class CustomerSignUpForm(UserCreationForm):
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
food_pref = forms.CharField(required=True)
class Meta(UserCreationForm.Meta):
model = User
@transaction.atomic
def save(self):
user = super().save(commit=False)
user.is_customer = True
user.first_name = self.cleaned_data.get('first_name')
user.last_name = self.cleaned_data.get('last_name')
user.food_pref = self.cleaned_data.get('food_pref')
user.save()
customer = Customer.objects.create(user=user)
customer.food_pref = self.cleaned_data.get('food_pref')
customer.save()
return user
def __init__(self, *args, **kwargs):
super(CustomerSignUpForm, self).__init__(*args, **kwargs)
self.fields['username'].widget.attrs.update({
'class': 'form-control',
"name": "username"})
self.fields['first_name'].widget.attrs.update({
'class': 'form-control',
"name": "username"})
self.fields['last_name'].widget.attrs.update({
'class': 'form-control',
"name": "username"})
self.fields['food_pref'].widget.attrs.update({
'class': 'form-control',
"name": "food_pref"})
Views.py
class customer_register(CreateView):
model = User
form_class = CustomerSignUpForm
template_name = 'login/customer_register.html'
def form_valid(self, form):
user = form.save()
login(self.request, user)
return redirect('/')
Register User View
У меня похожая проблема с регистрацией в ресторане. Спасибо