如何从 Django 中的 URL 获取参数
How can I GET the parameters from URL in django
我正在尝试通过 URL 发送参数并尝试在列表视图中使用它。但我无法在我看来得到它。我知道我犯了一些愚蠢的错误,但找不到它。
这是我在模板中使用的link:
<a class="dropdown-item" href="{% url 'listarmateriales' tipolista='metales' %}">Ver metales
这是我的 url.py:
path('listarmateriales/<tipolista>',listarmateriales.as_view(), name='listarmateriales'),
这是我尝试在 views.py 中获取“tipolista”的地方:
class listarmateriales(ListView):
template_name = 'materiales/materialeslist.html'
def get_queryset(self):
if self.request.GET.get('tipolista') is not None:
lista=Materiales.objects.all()
tipolista=self.request.GET.get('tipolista' '')
if tipolista=='metales':
Do whatever...
else:
我尝试了一些不同的 sintaxis,但结果总是一样,我无法阅读“tipolista”,我花了很多时间在这上面,太多了。我知道这一定很简单,但是,我是新手。提前致谢
这些是 不是 GET 参数,这些是 URL 参数。这些存储在 self.kwargs
中,因此您可以通过以下方式访问它们:
def get_queryset(self):
lista = Materiales.objects.all()
tipolista = <strong>self.kwargs['tipolista']</strong>
if tipolista=='metales':
# …
else:
# …
这些不能 None
,因为它们的存在是为了“触发”视图。
你可以看看
现在让我们学习如何在 Django 中实现它。
如何在 Django 中从 URL 获取参数 Django URL 将参数传递给
查看Django URL 模板中的参数 从URL 中获取参数
Django 示例路径转换器 Django Django URL 参数字符串
Django URL slug 参数
the link - https://pythonguides.com/get-url-parameters-in-django/
为了 urls.py 将 tipolista 识别为字符串变量,您应该将 tipolista 作为视图参数传递。所以,你的视图函数应该是这样的:
def get_queryset(self, tipolista):
if self.request.GET.get('tipolista') is not None:
lista=Materiales.objects.all()
if tipolista=='metales':
#...
else:
#...
并且在您的 url 模式中,tipolista 前面必须有 'str':
path('listarmateriales/<str:tipolista>',listarmateriales.as_view(), name='listarmateriales'),
我正在尝试通过 URL 发送参数并尝试在列表视图中使用它。但我无法在我看来得到它。我知道我犯了一些愚蠢的错误,但找不到它。
这是我在模板中使用的link:
<a class="dropdown-item" href="{% url 'listarmateriales' tipolista='metales' %}">Ver metales
这是我的 url.py:
path('listarmateriales/<tipolista>',listarmateriales.as_view(), name='listarmateriales'),
这是我尝试在 views.py 中获取“tipolista”的地方:
class listarmateriales(ListView):
template_name = 'materiales/materialeslist.html'
def get_queryset(self):
if self.request.GET.get('tipolista') is not None:
lista=Materiales.objects.all()
tipolista=self.request.GET.get('tipolista' '')
if tipolista=='metales':
Do whatever...
else:
我尝试了一些不同的 sintaxis,但结果总是一样,我无法阅读“tipolista”,我花了很多时间在这上面,太多了。我知道这一定很简单,但是,我是新手。提前致谢
这些是 不是 GET 参数,这些是 URL 参数。这些存储在 self.kwargs
中,因此您可以通过以下方式访问它们:
def get_queryset(self):
lista = Materiales.objects.all()
tipolista = <strong>self.kwargs['tipolista']</strong>
if tipolista=='metales':
# …
else:
# …
这些不能 None
,因为它们的存在是为了“触发”视图。
你可以看看
现在让我们学习如何在 Django 中实现它。
如何在 Django 中从 URL 获取参数 Django URL 将参数传递给 查看Django URL 模板中的参数 从URL 中获取参数 Django 示例路径转换器 Django Django URL 参数字符串 Django URL slug 参数
the link - https://pythonguides.com/get-url-parameters-in-django/
为了 urls.py 将 tipolista 识别为字符串变量,您应该将 tipolista 作为视图参数传递。所以,你的视图函数应该是这样的:
def get_queryset(self, tipolista):
if self.request.GET.get('tipolista') is not None:
lista=Materiales.objects.all()
if tipolista=='metales':
#...
else:
#...
并且在您的 url 模式中,tipolista 前面必须有 'str':
path('listarmateriales/<str:tipolista>',listarmateriales.as_view(), name='listarmateriales'),