Python 如何在Django中将参数dynamicali从模板传递到ListView?
我想通过URL将参数动态传递给ListView: views.py:Python 如何在Django中将参数dynamicali从模板传递到ListView?,python,django,Python,Django,我想通过URL将参数动态传递给ListView: views.py: from django.shortcuts import render from django.views import generic from objects.models import Object class UserObjectsView(generic.ListView): template_name = 'user_objects.html' def get_queryset(self):
from django.shortcuts import render
from django.views import generic
from objects.models import Object
class UserObjectsView(generic.ListView):
template_name = 'user_objects.html'
def get_queryset(self):
return Object.objects.all()
URL.py:
from django.urls import path
from . import views
urlpatterns = [
path('user/<int:pk>/', views.UserObjectsView.as_view(), name='user-objects')
]
从django.url导入路径
从…起导入视图
URL模式=[
路径('user/',views.UserObjectsView.as_view(),name='user-objects')
]
我将此url称为的模板:
<h3><a href="{% url 'user-objects' %}{{ user.id }}">Objects</a></h3>
我想动态传递这个user.id
,但现在它出现了错误:
找不到参数的“用户对象”的反转。1幅(s)
已尝试:[“对象/用户/(?P[0-9]+)/$”]
可以在模板中传递参数,如:
<h3><a href="{% url 'user-objects' pk=user.id %}">Objects</a></h3>
Hmm,好吧,但是如何在ListView中获取这个值,我尝试重写queryset,如下:def get\u queryset(self):user\u id=self.request.get.get('pk')print(user\u id)
但它没有返回我`我找到它了user\u id=self.kwargs['pk']
,这是最好的方法吗?self.request.GET
用于查询参数。。您正在查找self.kwargs.get(“pk”)
@JoEark:该值不在self.request.get
中,因为它包含querystring中的参数。正如您刚刚发现的,这些参数位于self.kwargs
中。