Django-- Получить конкретный объект в шаблонах - PullRequest
0 голосов
/ 26 сентября 2011

Я пытаюсь, чтобы в URL была переменная (скажем, userid = 'variable'), и эта переменная передавалась бы в качестве аргумента для извлечения конкретного объекта с переменным в качестве его имени в базе данных определенного приложения. Как бы я это сделал?

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Арье прав, документация для Джанго отличная.Не пугайтесь, они делают его очень легким в изучении.

Из написания вашего первого приложения Django, часть 3 (https://docs.djangoproject.com/en/dev/intro/tutorial03/), в примере показано, как захватывать переменные из URL. Вurls.py:

urlpatterns = patterns('',
    (r'^polls/$', 'polls.views.index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
)

строка (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail') говорит, что когда url похож на mysite.com/polls/423, захватите \ d + (423) и отправьте его в подробный вид как переменную с именемpoll_id. Если вы измените <poll_id> на <my_var>, переменная с именем my_var будет передана в представление. В представлении пример имеет:

def detail(request, poll_id):
    return HttpResponse("You're looking at poll %s." % poll_id)

Вы в теле этой функции можетепосмотрите опрос Polls.objects.get(id=poll_id) и получите все свойства / методы объекта Poll.

АЛЬТЕРНАТИВНО, если вы хотите добавить переменные URL (строка запроса), например / polls / details? poll_id = 423тогда ваша запись urls.py будет иметь вид:

    (r'^polls/details$', 'polls.views.detail'),

, а ваш вид:

def detail(request):
    poll_id = request.GET['poll_id']
    return HttpResponse("You're looking at poll %s." % poll_id)

В теле вы все равно можете получить детали объекта Poll с помощью Poll.objects.get(id=poll_id),но в этом случае вы создаете переменную poll_id из переменной GET вместо разрешения DjaТеперь нужно разобрать URL-адрес и передать его в представление.

Я бы предложил придерживаться первого метода.

0 голосов
/ 27 сентября 2011

Вы действительно читали учебник для Django ?

Чтобы выделить только одно предложение из Напишите ваш первый взгляд

Теперь давайте добавим еще несколько просмотров. Эти взгляды немного отличаются, потому что они принимают аргумент (который, помните, передается из все, что было захвачено регулярным выражением в URLconf)

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