У меня есть проект Django, в котором есть одно приложение (опрос), поэтому в urls.py моего проекта у меня есть:
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
path('survey/',include(('survey.urls','survey'), namespace='survey')),
...]
Я использую django -allauth для обеспечения аутентификации механизм. Тем не менее, я унаследовал RegistrationView, который находится в Django -Allauth, следующим образом:
class MySignupView(SignupView):
def form_valid(self.request):
self.user = form.save(self.request)
assignmentAttendance=AssignmentAttendance.objects.create(user=user, assignment=Assignment.objects.get(id=1), status=False)
assignmentAttendance.save()
assignmentAttendance = AssignmentAttendance.objects.create(user=user, assignment=Assignment.objects.get(id=2), status=False)
assignmentAttendance.save()
try:
return complete_signup(
self.request, self.user,
app_settings.EMAIL_VERIFICATION,
self.get_success_url())
except ImmediateHttpResponse as e:
return e.response
Дополнительный процесс (в переопределении form_valid) заключается в создании данных для другой модели в приложении опроса. Я не знаю лучшего места для размещения класса MySignupView, поэтому я помещаю его в urls.py проекта, а затем добавляю его представление в urlpatterns:
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
path('survey/',include(('survey.urls','survey'), namespace='survey')),
path('accounts/signup', MySignupView.as_view(), name="account_signup"),
...]
Это работает, так как мой MySignupView - это то, что вызывается, когда пользователь желает зарегистрироваться вместо RegistrationView от Django -allauth.
Есть ли лучшая конфигурация для того, где писать собственные представления и где их помещать. Если так, как это должно быть сделано? Мне известно, что Django -allauth имеет способ добавления пользовательской формы по умолчанию, задав ACCOUNT_FORMS в файле settings.py.
Должен ли я создавать учетные записи вызовов приложения, а затем отображать MySignupView в его представлении или делать Я создаю util_views.py и помещаю в него MySignupView? Я спрашиваю, так как я могу написать свои собственные представления, наследуя от django -allauth.