如何添加网址参数 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>

后面的参数?显然是不工作的,我如何传递这个数据值,以便检索与获取?

251399 次浏览

我在这里找到了答案: 是否可以通过 Django 的{% url% }模板标记传递查询参数?

简单地把它们加到最后:

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


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

[没有其他需要改进的地方,但是当我修复代码时,我得到了一个愚蠢的错误]

首先,您需要准备您的 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 %}

只需添加模板 URL:

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

用于 django 2.0

我不确定我是否离开了这个主题,但是我为自己找到了解决办法; 您有一个基于类的视图,并且希望将 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

然后你提出你的获取请求 /mysite/urlname?get_parameter_name='stuff

在您的模板中,当您插入 \{\{ tag_name }}时,您将可以访问 get 参数值(‘ stuff’)。如果模板中的 URL 也需要此参数,则可以执行

 {% url 'my_url' %}?get_parameter_name=\{\{ tag_name }}"

您不必修改 URL 配置

这可以通过三个简单的步骤来实现:

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) 使用 视野,视野上的 id:

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


return redirect('dashboard')

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‘ tick _ Details’% }是视图中的函数名

第2集: Views.py

def ticket_details(request, ticket_id):


print(ticket_id)
return render(request, ticket.html)

Tick _ id 是您将从 ticticet.id 中获得的参数

3: URL.py

urlpatterns = [
path('ticket_details/?P<int:ticket_id>/', views.ticket_details, name="ticket_details") ]

/? P-其中 Tick_ id 是组的名称,模式是要匹配的模式。