首页 > 解决方案 > 尝试获取数据Python Django时输入错误

问题描述

我正在尝试根据带有 id 的请求从数据库中获取数据u_idx_id但我没有得到任何数据,而是出现错误TypeError: display_data() missing 2 required positional arguments: 'u_id' and 'x_id',你能帮忙吗?

code

def display_data(request, u_id, x_id):
    if request.method == 'POST':
        widget['data'] = Widget.objects.get(u_id = u_id, x_id = x_id)
        return widget

urls.py

url(r'^display_data/$', views.display_data, name="display_data"),

标签: pythondjango

解决方案


您需要从 POST 数据中获取它们。

def display_data(request):
    if request.method == 'POST':
        u_id = request.POST.get('u_id')
        x_id = request.POST.get('x_id')
        widget['data'] = Widget.objects.get(u_id=u_id, x_id=x_id)
        return widget

此外,您可能希望使用表单进行验证。

如果您想获取u_idx_id作为您正在尝试的参数,您需要将它们添加到 url。

url(r'^display_data/<int:u_id>/<int:x_id>', views.display_data, name="display_data"),

编辑:如果您获得多个对象,请使用filter而不是get

widget['data'] = Widget.objects.filter(u_id=u_id, x_id=x_id)

推荐阅读