python - 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'),
]
解决方案
我认为 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
为对您的应用程序最有意义的任何值。
推荐阅读
- spring - 当我尝试使用 gradle 中的 uploadArchives 将工件上传到 nexus 时
- c++ - C++17 std::from_chars 和 std::to_chars 的用途?
- mysql - 如何修复 MySQL 中的外键错误?
- powerbi - Sumif 使用页面、报表和可视级别过滤器
- node.js - postgres中的查询问题
- java - 如何设置 JButton ArrayList 的属性?
- database - Mongoose - 尽管建立了连接,但数据库没有显示在 GUI 上
- python - 在 chunksize 模式下提高 Pandas read_csv 速度
- javascript - 节点应用程序工作环境中的 AWS Elastic Beanstalk cron
- kubernetes - Kubernetes 控制器无法检测资源注册的事件,所有者引用作为同一控制器对象