3

I am trying to have a redirect to a specific page base on a variable in my views.py:

redirect(f'feed/user/{first_user}')

But by having it like this it redirects me to the url:

feed/search/feed/user/first_user

instead I would like to redirect to the url

feed/user/first_user

I know that the feed/search/ part is appended because the search url in my urls.py calls the function that should redirect but I would like to keep it that way and only change the redirect.

URLS.PY:

urlpatterns = [
    path('', login_required(PostListView.as_view()), name='feed-home'),
    path('user/<str:username>/', login_required(UserPostListView.as_view()), name='user-feed'),
    path('post/<int:pk>/', login_required(views.post_detail), name='post-detail'),
    path('comment_delete/', login_required(views.comment_delete), name='comment-delete'),
    path('post/new/', login_required(PostCreateView.as_view()), name='post-create'),
    path('post/<int:pk>/update', login_required(PostUpdateView.as_view()), name='post-update'),
    path('post/<int:pk>/delete', login_required(PostDeleteView.as_view()), name='post-delete'),
    path('about/', views.about, name='feed-about'),
    path('like/', login_required(views.post_like), name="post-likes"),
    path('comment_create/', login_required(views.comment_create), name="comment-create"),
    path('search/', login_required(views.user_search), name="user-search"),
]
0xDr0id
  • 189
  • 3
  • 18

3 Answers3

3

You can pass a view name and it's arguments to redirect. Looks like you want the user-feed view?

redirect('user-feed', username=first_user)
Iain Shelvington
  • 31,030
  • 3
  • 31
  • 50
0

Try this: Redirect to named url pattern directly from urls.py in django? Or this: https://adriennedomingus.com/blog/working-with-urls-in-python-amp-django

  • Yes it worked! Thank you. I have added the following: `return redirect(reverse('user-feed', kwargs={'username' : first_user}))` – 0xDr0id Jun 16 '20 at 07:01
0

You can use below code to redirect

return redirect('/accounts/twitter')

'/accounts/twitter' is your url where you want to move. we create these urls in urls.py file

you can also use below code to move on particular site

def my_view(request):
    ...
    return redirect('https://example.com/')
Ali Zaib
  • 54
  • 5