[英]Django - WSGIRequest' object has no attribute 'Get'
So I have 2 scenerios in which one works and one doesnt. 因此,我有2个场景,其中一个有效,而一个无效。 I set up a select box in the html template with some hard coded options which you can see in Scenrio2.
我在html模板中设置了一个选择框,其中包含一些在Scenrio2中可以看到的硬编码选项。 Im curious to know why Scenario2 works with no problems and Scenario1 throws this error.
我很想知道为什么Scenario2可以正常工作,而Scenario1会引发此错误。 I have also attached the stack trace below.
我还附加了下面的堆栈跟踪。
Scenario1(Doesnt Work): 方案1(不工作):
current_status = 'All'
status_list = []
all_status = RequisitionStatus.objects.all()
for status in all_status:
status_list.append(status.status)
if request.Get.get('Filter') in status_list:
user_req_lines_incomplete = RequisitionLine.objects.filter(Q(parent_req__username=request.user) & Q(status__status=request.Get.get('Filter')))
current_status = request.Get.get('Filter')
else:
user_req_lines_incomplete = RequisitionLine.objects.filter(parent_req__username=request.user).exclude(status__status='Completed')
Scenario 2(works): 方案2(可行):
if request.GET.get('Filter') == 'Created':
user_req_lines_incomplete = RequisitionLine.objects.filter(Q(parent_req__username=request.user) & Q(status__status='Created'))
current_status = 'Created'
elif request.GET.get('Filter') == 'For Assistance':
user_req_lines_incomplete = RequisitionLine.objects.filter(Q(parent_req__username=request.user) & Q(status__status='For Assistance'))
current_status = 'For Assistance'
elif request.GET.get('Filter') == 'Assistance Complete':
user_req_lines_incomplete = RequisitionLine.objects.filter(Q(parent_req__username=request.user) & Q(status__status='Assistance Complete'))
current_status = 'Assistance Complete'
elif request.GET.get('Filter') == 'Assistance Rejected':
user_req_lines_incomplete = RequisitionLine.objects.filter(Q(parent_req__username=request.user) & Q(status__status='Assistance Rejected'))
current_status = 'Assistance Rejected'
else:
user_req_lines_incomplete = RequisitionLine.objects.filter(parent_req__username=request.user).exclude(status__status='Completed')
Traceback:
File "C:\Users\Kevin.Pardo\Documents\Python\venv\env\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\Kevin.Pardo\Documents\Python\venv\env\lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "C:\Users\Kevin.Pardo\Documents\Python\venv\env\lib\site-packages\django\core\handlers\base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Kevin.Pardo\Documents\Python\venv\env\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
21. return view_func(request, *args, **kwargs)
File "C:\Users\Kevin.Pardo\Documents\Python\django\lambda\req\views.py" in pending_action
241. if request.Get.get('Filter') in status_list:
Exception Type: AttributeError at /req/pending/
Exception Value: 'WSGIRequest' object has no attribute 'Get'
It has nothing to do with the approach you followed. 它与您遵循的方法无关。 In your first approach you write:
在第一种方法中,您将编写:
if request.
Get.get('Filter') in status_list:
# ...
Like the error says, the request
object has no Get
attribute, only a GET
attribute. 就像错误所说的一样,
request
对象没有Get
属性,只有GET
属性。 You make the same mistake over the rest of the view. 您在其余视图中也会犯同样的错误。
So you can fix this with: 因此,您可以使用以下方法解决此问题:
if request.
GET.get('Filter') in status_list:
# ...
You furthermore also wrote parent_req__username=request.user
in the filtering (of both views), I think it might be better to use parent_req=request.user
, or parent_req__username=request.user.username
). 您还进一步在过滤(两个视图)中都写了
parent_req__username=request.user
,我认为最好使用parent_req=request.user
或parent_req__username=request.user.username
)。
You can in fact improve this a bit further like: 实际上,您可以进一步改善它,例如:
current_status = 'All'
all_status = RequisitionStatus.objects.values_list('status', flat=True)
filter = request.GET.get('filter')
if filter in status_list:
user_req_lines_incomplete = RequisitionLine.objects.filter(
parent_req=request.user,
status__status=filter
)
current_status = filter
else:
user_req_lines_incomplete = RequisitionLine.objects.filter(
parent_req=request.user
).exclude(
status__status='Completed'
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.