Как я могу создать отдельную страницу в соответствии с определенным идентификатором в Django? - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь создать сайт, используя django, в котором люди могут заполнить форму, которая создаст экземпляр модели «Персона». Я хочу создать отдельную страницу для каждого «Персона».

Мне было интересно, можно ли было бы назначить конкретный идентификатор каждому человеку, например, 123456, и получить доступ к странице этого человека, зайдя на mysite.com/123456.

Как я могу это сделать?

1 Ответ

1 голос
/ 30 сентября 2019

Это абсолютно возможно и достаточно просто.

Я предполагаю, что у вас уже есть Человек, созданный из формы и тому подобное. Объект Person готов, его просто нужно отобразить.

В вашем urls.py:

    path('<int:user_id>/', views.profile, name='profile'),

В вашем views.py:

def profile(request, user_id):
    the_user = get_object_or_404(Person, user_id=user_id)
    return render(request, 'profile.html', {'the_user': the_user,})

Затем, когда вы вводите mysite.com/12432, это займет 12432, назначьтеэто к аргументу user_id и отправьте этот аргумент в вашу функцию представления, как вы можете видеть. user_id будет использоваться, чтобы выяснить, какого человека разыскивают, и вернет этого человека и его данные в шаблон.

Mad Wombat имеет несколько хороших дополнительных сведений. Смотрите его комментарий ниже. Я включил некоторые из этих отзывов в обновленный ответ.

Если user_id совпадает с идентификатором по умолчанию в вашей базе данных, вы можете использовать pk=user_id в вашем get_object_or_404().

...