Django Поиск и просмотр - PullRequest
       36

Django Поиск и просмотр

0 голосов
/ 09 октября 2018

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

{% if sr %}
    {% for k,j in sr %}
        <tbody>
            <tr>
                <td>{{ k.id }}</td>
                <td>{{ k.chromosome }}</td>
                <td>{{ k.gene_id }} </td>
                <td><a href="{{ j }}"> view</a></td>
            </tr>
        </tbody>
    {% endfor %}
{% endif %}

Я хочу отправить это k.id в другую функцию

 def detailed(request):
    return render(request,"search/Detailed.html")

, чтобы я мог снова выполнить запрос из базы данных этим id

1 Ответ

0 голосов
/ 10 октября 2018

Поскольку вы не указали версию django, которую вы используете, я собираюсь предположить, что это 2.x. Единственная огромная разница между этой и более поздними версиями 1.x заключается вurlpatterns.Если вы используете 1.11, просто используйте нужные регулярные выражения, как описано в документах. В любом случае, принцип тот же.

urls.py

urlpatterns = [
    ....
    path('<int:some_id>/', views.detail_view, name='detail_view'),
    # if django 1.11... you would use ([0-9]{4}) in place of the 'int', or for whatever max amount of numbers you'd want to capture... But I will continue for django 2.x.
]

views.py

def detail_view(request, some_id):
    some_object = YourModel.objects.get(id=some_id)
    return render(request, 'detail_template.html', {'some_object ': some_object})

detail_template.html

<p>{{ some_object.chromosome }}</p> 
<p>{{ some_object.gene_id }}</p> 
<p><a href="{% url 'detail_view' some_object.id %}">View details</a></p>

Обратите внимание, что *В блоке 1022 * выше добавлен some_object.id в качестве аргумента ПОСЛЕ представления, к которому он относится в кавычках.Это самый простой способ.

Вы также можете получить то же самое с помощью метода модели с помощью функции reverse('app_name:view_name', args=[arg_1, arg_2, etc), а затем вызвать метод с помощью {{ some_object.your_method }}.Но все эти аргументы будут зависеть от того, какие шаблоны и функции вашего URL использовались.

...