Как установить текущего зарегистрированного пользователя по умолчанию в представлении Django, когда не заданы параметры URL - PullRequest
0 голосов
/ 19 февраля 2020

я хочу, чтобы / profile / route был доступен без передачи аргумента URL

Это мой профиль Просмотр:

@login_required
def profile(request, username):
    ctx = {"username" : username}
    return render(request, "raynet/profile.html",ctx)

Это мой шаблон URL:

urlpatterns = [
    path('', views.landing),
    path('home/', views.home),
    path('profile/', views.profile),
    path('profile/<username>', views.profile),
    path('apps/', views.apps),
    path('signin/', views.signin),
    path('signup/', views.signup),
    path('testing/', views.testing),
    path('signout/', views.signout),
]

Работает нормально, если я указываю имя пользователя в URL, но не работает, если я просто go в / profile / Я хочу получить текущего зарегистрированного пользователя по умолчанию, когда переменная url не указана.

1 Ответ

2 голосов
/ 19 февраля 2020

Попробуйте так:

@login_required
def profile(request, username=None):   
    ctx = {"username" : username if username else request.user.username}
    return render(request, "raynet/profile.html",ctx)

Здесь я пишу параметр имени пользователя в качестве аргумента ключевого слова, так что значением имени пользователя по умолчанию является None. Затем, используя if else logi c, я назначаю значение имени пользователя из аргумента или из request.user.username.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...