首页 > 解决方案 > Python Django 多个请求参数

问题描述

我是 python 和 django 的新手,正在尝试构建一个简单的 Web 应用程序。我遇到了以下问题

我正在传递以下代码

def view(request, cases_id, transactions_id):
    item = Cases.objects.get(pk=cases_id)
    item2 = Transactions.objects.get(pk=transactions_id)
    return render(request, 'view.html', {'item': item, 'item2': item2})

并收到以下错误:

view() missing 1 required positional argument: 'transactions_id'

我的urls.py

from django.urls import path 
from . import views 

urlpatterns = [
    path('', views.home, name='home'), 
    path('new', views.new, name='new'),
    path('edit', views.edit, name='edit'),
    path('view/<cases_id>',views.view, name='view'),
]

标签: pythondjango

解决方案


我认为 Marat 在上面的评论中有解决方案。只需更新您的路径以包含该transaction_id变量。

from django.urls import path 
from . import views 
urlpatterns = [
    path('view/<cases_id>/<transaction_id>',views.view, name='view'),
    #                     ^^^^ Add this bit here
]

您还可以通过向视图方法添加默认值来处理此特定错误。

def view(request, cases_id, transactions_id=0):
    ...

这样,如果 URL 中不存在 transaction_id,则该方法将使用默认值。您可以替换0为对您的应用程序最有意义的任何值。


推荐阅读