перенаправление в профиль после создания пользователя, который автоматически создает профиль - PullRequest
0 голосов
/ 21 апреля 2020

Прошу прощения за то, что раздражаю, я начинающий программист и работаю над своим новым проектом.

Я создал эту модель, которая создает профиль при создании пользователя:

class ExpertSignUpForm(UserCreationForm):
    class Meta(UserCreationForm.Meta):
        model = User

@transaction.atomic
def save(self):
    user = super().save(commit=False)
    user.is_expert = True
    user.save()
    expert = Expert.objects.create(expert=user)
    return user

и это вид. Итак, что я пытаюсь сделать здесь, это подписать пользователя, затем установить его права доступа в качестве эксперта, а затем войти в него, что я уже сделал, но то, что я не могу сделать, это перенаправить его в его детали / обновления эксперта профиль сразу после входа в систему. так что если вы можете помочь мне с этим. Заранее спасибо.

Вот мнения:

class ExpertSignUpView(CreateView):
        model = User
        form_class = ExpertSignUpForm
        template_name = 'registration/signup_form.html'

        def get_context_data(self, **kwargs):
            kwargs['user_type'] = 'expert'
            return super().get_context_data(**kwargs)

        def form_valid(self, form):
            user = form.save()
            login(self.request, user)
            return redirect('/') <<-------

URL могут помочь

urlpatterns = [
    path('',ExpertListView.as_view(), name='list'),
    path('Esignup/',ExpertSignUpView.as_view(), name='expert_signup'),
    path('Ssignup/',StudentSignUpView.as_view(), name='student_signup'),
    path('create/',ExpertCreateView.as_view(), name='create'),
    path('<str:pk>/',ExpertDetailView.as_view(), name='detail'),
    path('<str:pk>/update/',ExpertUpdateView.as_view(), name='update'),
    path('<str:pk>/delete/',ExpertDeleteView.as_view(), name='delete'),
    ]

1 Ответ

0 голосов
/ 21 апреля 2020

Можете ли вы попробовать изменить urlpatterns так, чтобы сначала обрабатывалось самое ограничительное

urlpatterns = [  
    path('Esignup/',ExpertSignUpView.as_view(), name='expert_signup'),
    path('Ssignup/',StudentSignUpView.as_view(), name='student_signup'),
    path('create/',ExpertCreateView.as_view(), name='create'),
    path('<str:pk>/',ExpertDetailView.as_view(), name='detail'),
    path('<str:pk>/update/',ExpertUpdateView.as_view(), name='update'),
    path('<str:pk>/delete/',ExpertDeleteView.as_view(), name='delete'),
    path('',ExpertListView.as_view(), name='list'),
]

Затем в вашем перенаправлении укажите желаемое выражение пути от go до

return redirect('app_name:update')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...