У меня проблема с входом пользователя в систему и последующим перенаправлением на правильный профиль. У каждого пользователя есть свой профиль. Каждый профиль имеет панель управления. Используя встроенный логин django, я хочу перенаправить недавно аутентифицированного пользователя на URL-адрес, например: example.com/profile/dashboard/.
Я не могу заставить это работать, потому что не могу понять, как передать kwargs между представлением входа в систему django и моим подробным представлением. Между ними есть редирект. Может кто-нибудь показать мне, как это сделать?
models.py
class Profile(TimeStamped, Slugged):
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
return self.user.username
def save(self, *args, **kwargs):
super(Profile, self).save(*args, **kwargs)
self.slug = (slugify(self.user.username))
def get_absolute_url(self):
return reverse('profiles:detail', kwargs={'profile': self.slug})
class Dashboard(TimeStamped, Slugged):
profile = models.OneToOneField(Profile, on_delete = models.CASCADE)
uuid = models.UUIDField(default=uuid.uuid4)
def __str__(self):
return self.profile.user.username
def save(self, *args, **kwargs):
super(Dashboard, self).save(*args, **kwargs)
self.slug = (slugify(self.uuid))
def get_absolute_url(self):
return reverse('profiles:dashboard', kwargs={'profile': self.profile.slug,
'dashboard': self.slug})
views.py
class DashboardRedirectView(LoginRequiredMixin, RedirectView):
permanent = False
query_string = False
pattern_name = 'profiles:dashboard'
def get_redirect_url(self, *args, **kwargs):
dashboard = get_object_or_404(Dashboard, slug=kwargs['dashboard'])
return super().get_redirect_url(*args, **kwargs)
urls.py
urlpatterns = [
path('profiles/home/',
DashboardRedirectView.as_view(),
name = 'home')
.........