У меня здесь FBV для веб-сайта электронной коммерции, у меня есть два класса, Customer и ShippingAddress, а затем пользователь по умолчанию,
def signup(request):
if request.method == 'POST':
user_form = forms.UserCreateForm(data=request.POST)
shipping_form = forms.ShippingAddressCreateForm(data=request.POST)
if user_form.is_valid() and shipping_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
customer = Customer.objects.create(user=user, name=user.username, email=user.email, is_authenticated=True)
shipping_info = shipping_form.save(commit=False)
shipping_info.customer = customer
shipping_form.save()
else:
print(user_form.errors, shipping_form.errors)
else:
user_form = forms.UserCreateForm()
shipping_form = forms.ShippingAddressCreateForm()
# Function from utils.py
data = cartData(request)
cartitems = data['cartItems']
context_dict = {'form': user_form, 'shipping_form': shipping_form, 'cartitems': cartitems}
return render(request, "accounts/signup.html", context_dict)
Все работает нормально, когда я go панель администратора, у меня есть пользователь, клиент, который ссылается на пользователя, и ShippingAddress, который ссылается на клиента, все детали также в порядке и работают должным образом, однако проблема заключается в входе в систему, я использую LoginView для входа,
path('login/',auth_views.LoginView.as_view(
template_name="accounts/login.html"),
name='login'),
Но когда я ввожу данные, он говорит, что они неверны, хотя я на 100%, я попытался вручную обработать вход с помощью FBV, но возникает та же проблема, я также обнаружил, что когда я добавляю учетную запись со страницы администратора или суперпользователя с терминала, то логин работает нормально, а это значит, что я должен делать что-то не так в функции регистрации.
РЕДАКТИРОВАТЬ
Только что выяснил, что даже если я назначаю статус персонала пользователю, созданному в представлении регистрации, он не позволяет мне войти на страницу администратора, что, я думаю, заставляет меня nse, но я был бы очень признателен за помощь в этом, потому что я полностью в тупике.
EDIT 2
Пытался зарегистрировать пользователя с помощью встроенного Django CreateView, который работал хорошо, однако это вызывает проблему, заключающуюся в том, что мне приходится использовать другую страницу для настройки клиента и адреса доставки, и если этот человек не входит в систему, то остальная часть веб-сайта ломается. Поэтому я бы предпочел иметь возможность настраивать обе формы и все классы на одной веб-странице и классе
Любая помощь будет принята с благодарностью.