Как я могу получить Django view.py запрашивать информацию о выбранных сообщениях, такую как первичный ключ?

#python #html #django #postgresql

#python #HTML #django #postgresql

Вопрос:

У меня есть проект Django с HTML-файлом, в котором перечислены все CSV-файлы, которые были загружены в мою базу данных Postgresql, и когда вы нажимаете на интересующий вас CSV, отображается новая страница с базовой информацией модели CSV (имя / время отправки).

Это Первая страница:

   {% for csv in Data_List %}
      <a href = "{{csv.id}}"><button class="btn btn-primary" style = "font-size:1.2em;" >{{csv.name}}</button></a>
      <br><br>
  {% endfor %}  

Это вторая страница:

 <p>{{request.user.username}}'s Note
    <h6>{{worklog.name}}
        <br>
      {{worklog.date}}
        <br>
      {{worklog.notes|safe}}
      <br>
      {{worklog.mycsv|safe}}
    </h6>
  </p>  

Однако моя цель состоит в том, чтобы при нажатии кнопки в ПРЕДСТАВЛЕНИИ python передавался (или просто извлекался) первичный ключ выбранных сообщений (или другая информация). Я хочу сделать это, чтобы представление могло запрашивать у базы данных фактический CSV и выполнять некоторую работу.

Как я могу получить view.py чтобы запросить информацию о выбранных сообщениях, такую как первичный ключ?

Спасибо и удачного кодирования

Комментарии:

1. Вам нужно будет поделиться некоторым кодом и объяснить, с чем у вас проблемы, но основная стратегия заключается в том, чтобы идентификатор базы данных передавался функции просмотра в качестве параметра в URL. Затем в вашей функции просмотра вы можете получить соответствующий объект и передать его в шаблон, где вы можете извлечь любые поля, которые вас интересуют.

2. Спасибо, что ответили, Робин! Я на 100% понимаю вторую часть вашего комментария. Где я борюсь, так это с передачей идентификатора базы данных функции просмотра в качестве параметра в URL. и примером моего URL может быть либо это: ` url (r’ ^ (?P<pk> d ) $’, DetailView.as_view(модель = Your_CSV, имя_шаблона = «accounts/csv_graph.html «)),` или это было бы примерно так ` url (r’^(?P<pk> d ) $’, просмотры. YourCSV»)), ` в этом случае представление будет обрабатывать данные. Какие другие параметры можно передать здесь? У вас есть ссылка на документацию? Еще раз спасибо!

3. похоже, вы используете Django 1 (надеюсь, 1.11) на основе этих шаблонов URL (это изменено в Django 2). В таком случае это ссылка, показывающая вам, как отправлять параметры в URL-адресах — хотя, похоже, вас это уже устраивает, основываясь на том, что вы там разместили. (Вы можете передать любое количество параметров в URL.)

4. Я ПОНЯЛ ЭТО! Спасибо, уууу! Я уже передавал свой pk в представление, используя острые скобки <> (я не понимал, что это их функция). Итак, все, что мне нужно было сделать, это, на мой взгляд, «def yourcsv(request, pk):» и теперь я могу получить к нему доступ! Еще раз спасибо за всю вашу помощь!

Ответ №1:

 #The url
url(r'^anote/(?P<pk>d )$', views.A_Note, name = 'anote'),
#The view
def A_Note(request, pk):
    #the rest of code here
    return render(request, "some.html", {"thing":thing, "pk":pk, "etc":etc})
  

Я узнал, что острые скобки <> в URL-адресе передают значение в представление, где к нему затем можно получить доступ в качестве аргумента при определении представления. Оттуда его можно легко использовать в коде.

Спасибо!