I am trying to get data from the database based on request with id u_id and x_id but I am not getting any data instead getting an error TypeError: display_data() missing 2 required positional arguments: 'u_id' and 'x_id' can you help?
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"),
Advertisement
Answer
You need to get them from the POST data instead.
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
Also, you might want to use a form for validation.
If you want to get u_id and x_id as arguments like you are trying, you need to add them to the url.
url(r'^display_data/<int:u_id>/<int:x_id>', views.display_data, name="display_data"),
Edit:
Use filter instead of get if you are getting multiple objects
widget['data'] = Widget.objects.filter(u_id=u_id, x_id=x_id)