your programing

Django 템플릿 URL 태그에 URL 매개 변수를 추가하는 방법은 무엇입니까?

lovepro 2020. 10. 15. 08:21
반응형

Django 템플릿 URL 태그에 URL 매개 변수를 추가하는 방법은 무엇입니까?


내 관점에서 다음과 같은 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으로 검색하기 위해이 데이터 값을 어떻게 전달할 수 있습니까?


먼저 정규식에서 매개 변수를 허용하도록 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 %}

여기서 답을 찾았습니다. Django의 {% url %} 템플릿 태그를 통해 쿼리 매개 변수를 전달할 수 있습니까?

끝에 추가하기 만하면됩니다.

<a href="{% url myview %}?office=foobar">
For Django 1.5+

<a href="{% url 'myview' %}?office=foobar">

[개선 할 사항은 없지만 코드 틱을 수정하면 어리석은 오류가 발생합니다.]


템플릿 URL을 추가하기 만하면됩니다.

<a href="{% url 'service_data' d.id %}">
 ...XYZ
</a>

장고 2.0에서 사용


이것은 세 가지 간단한 단계로 수행 할 수 있습니다.

1)url 태그 와 함께 항목 ID 추가 :

{% 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 에서 ID를 사용하십시오 .

def delete(request, id):
    obj = post.objects.get(id=id)
    obj.delete()

    return redirect('dashboard')

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 구성을 수정할 필요가 없습니다.


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 - where ticket_id is the name of the group and pattern is some pattern to match.

참고URL : https://stackoverflow.com/questions/25345392/how-to-add-url-parameters-to-django-template-url-tag

반응형