Как отправить переменную из шаблона в путь и использовать ее в связанной функции просмотра? - PullRequest
0 голосов
/ 23 января 2020

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

шаблон. html

                        <tbody>
                        {% for del in delegates %}
                        <tr>
                            <td>{{ del.id }}</td>
                            <td>{{ del.first_name }} {{ del.last_name }}</td>
                            <td>{{ del.email }}</td>
                            <td>{{ del.phone }}</td>
                            <td>{{ del.company }}</td>
                            <td>{{ del.designation }}</td>
                            <td>{{ del.address }}</td>
                            <td>{{ del.city }} ({{ del.pincode }})</td>
//MY VIEW DETAIL BUTTON     <td><a href="{% url 'delegate_details' del_id=del.dataset_id %}">View</a></td>
                        </tr>
                        {% endfor %}
                        </tbody>

urls.py

from django.urls import path
from django.conf.urls import url
from . import views
urlpatterns = [
    path('', views.index),
    path('view-delegates', views.view_delegates),
    path('delegate-details', views.delegate_det),
    url(r'^delegate/(?P<del_id>[0-9]+)$', views.delegate_det, name='delegate_details'),
]

views.py

def delegate_det(request, dataset_id):
    # data = Delegate.objects.all()
    data = Delegate.objects.filter(dataset_id=dataset_id)
    return render(request, 'delegate_details.html', {'delegate': data})

PS: я новичок в Python

1 Ответ

1 голос
/ 23 января 2020

Вы должны исправить URL-адреса просмотров и шаблон следующим образом.

def delegate_det(request, dataset_id):
    data = get_object_or_404(Delegate, dataset_id=dataset_id)
    return render(request, 'delegate_details.html', {'delegate': data})

url

path('delegate/<int:dataset_id>', views.delegate_det, name='delegate'),

в шаблоне списка

<td><a href="{% url 'delegate' dataset_id=del.dataset_id %}">View</a></td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...