在我看来,获取URL参数的方法如下:
date=request.GET.get('date','')
我正在尝试使用url模板标签以这种方式传递参数:
<td><a href="{% url 'health:medication-record?date=01/01/2001' action='add' pk=entry.id %}" >Add To Log</a></td>
问号后的参数显然不起作用,我该如何传递这个数据值以便使用get方法检索?
在我看来,获取URL参数的方法如下:
date=request.GET.get('date','')
我正在尝试使用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 %}
{% url target_link target_kwargs %}
这将相当于向函数传递 **kwargs
。我有一个用例,其中 target_link
是变量,因此在URL中kwargs的数量是未知的。 - teebagz<a href="{% url myview %}?office=foobar">
For Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
[已经没有其他需要改进的地方了,但是当我修复代码时,却出现了一个愚蠢的错误]
example.com/myview/?office=foobar
而不是example.com/myview?office=foobar
? - Al Sweigart这可以通过三个简单的步骤完成:
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')
只需添加模板网址:
<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
然后您发出您的GET请求/mysite/urlname?get_parameter_name='stuff
。
在您的模板中,当您插入{{ tag_name }}
时,您将可以访问获取参数值('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 - 其中ticket_id是组名,pattern是用于匹配的某个模式。
path('client/<int:id>/')
。 URL查询参数是在“?”之后的URL的一部分,例如https://example.com/a/b/?param1=value1¶m2=value2
。这个问题涉及到URL查询参数,但有些答案涉及Django URL参数。 - Christian Long