Как добавить параметры URL-адреса в шаблон URL-адреса шаблона Django?
На мой взгляд, чтобы получить параметры URL-адреса, например:
date=request.GET.get('date','')
В моем url я пытаюсь передать параметры таким образом с тегом шаблона url следующим образом:
<td><a href="{% url 'health:medication-record?date=01/01/2001' action='add' pk=entry.id %}" >Add To Log</a></td>
Параметр после? очевидно, не работает, как я могу передать это значение данных, чтобы получить с помощью get?
Ответы
Ответ 1
Я нашел ответ здесь: Можно ли передавать параметры запроса через тег шаблона {% url%} в Django?
Просто добавьте их в конец:
<a href="{% url myview %}?office=foobar">
For Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
[нет ничего лучше, но я получаю глупую ошибку, когда исправляю тики кода]
Ответ 2
Сначала вам нужно подготовить свой URL, чтобы принять параметр в регулярном выражении:
(Urls.py)
url(r'^panel/person/(?P<person_id>[0-9]+)$', 'apps.panel.views.person_form', name='panel_person_form'),
Итак, вы используете это в своем шаблоне:
{% url 'panel_person_form' person_id=item.id %}
Если у вас несколько параметров, вы можете изменить свое регулярное выражение и изменить шаблон, используя следующее:
{% url 'panel_person_form' person_id=item.id group_id=3 %}
Ответ 3
Просто добавьте URL шаблонов:
<a href="{% url 'service_data' d.id %}">
...XYZ
</a>
Используется в django 2.0
Ответ 4
Это можно сделать за три простых шага:
1) Добавить идентификатор элемента с тегом url
:
{% for item in post %}
<tr>
<th>{{ item.id }}</th>
<td>{{ item.title }}</td>
<td>{{ item.body }}</td>
<td>
<a href={% url 'edit' id=item.id %}>Edit</a>
<a href={% url 'delete' id=item.id %}>Delete</a>
</td>
</tr>
{% endfor %}
2) Добавьте путь к urls.py:
path('edit/<int:id>', views.edit, name='edit')
path('delete/<int:id>', views.delete, name='delete')
3) Используйте идентификатор на views.py:
def delete(request, id):
obj = post.objects.get(id=id)
obj.delete()
return redirect('dashboard')
Ответ 5
Я не уверен, что im из темы, но я нашел решение для меня; У вас есть представление на основе класса, и вы хотите иметь параметр get в качестве тега шаблона:
class MyView(DetailView):
model = MyModel
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['tag_name'] = self.request.GET.get('get_parameter_name', None)
return ctx
Затем вы получите запрос get /mysite/urlname?get_parameter_name='stuff
.
В вашем шаблоне при вставке {{ tag_name }}
вас будет доступ к значению параметра get ('stuff'). Если у вас есть URL-адрес в шаблоне, который также нуждается в этом параметре, вы можете сделать
{% url 'my_url' %}?get_parameter_name={{ tag_name }}"
Вам не придется изменять конфигурацию URL-адреса
Ответ 6
1: HTML
<tbody>
{% for ticket in tickets %}
<tr>
<td class="ticket_id">{{ticket.id}}</td>
<td class="ticket_eam">{{ticket.eam}}</td>
<td class="ticket_subject">{{ticket.subject}}</td>
<td>{{ticket.zone}}</td>
<td>{{ticket.plaza}}</td>
<td>{{ticket.lane}}</td>
<td>{{ticket.uptime}}</td>
<td>{{ticket.downtime}}</td>
<td><a href="{% url 'ticket_details' ticket_id=ticket.id %}"><button data-toggle="modal" data-target="#modaldemo3" class="value-modal"><i class="icon ion-edit"></a></i></button> <button><i class="fa fa-eye-slash"></i></button>
</tr>
{% endfor %}
</tbody>
{% Url 'ticket_details'%} - это имя функции в ваших представлениях
2: Views.py
def ticket_details(request, ticket_id):
print(ticket_id)
return render(request, ticket.html)
ticket_id - это параметр, который вы получите из ticket_id = ticket.id
3: URL.py
urlpatterns = [
path('ticket_details/?P<int:ticket_id>/', views.ticket_details, name="ticket_details") ]
/? P - где ticket_id - имя группы, а pattern - какой-либо шаблон для сопоставления.