Подтвердить что ты не робот

Как добавить параметры 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?

4b9b3361

Ответ 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 - какой-либо шаблон для сопоставления.