Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django管理面板中的重定向不正确_Python_Django_Redirect_Admin_Url Redirection - Fatal编程技术网

Python django管理面板中的重定向不正确

Python django管理面板中的重定向不正确,python,django,redirect,admin,url-redirection,Python,Django,Redirect,Admin,Url Redirection,我有一个方法,该方法的任务是从以下位置重定向管理面板中的页面: http://127.0.0.1:8000/admin/events/event/ 致: 我得到了一个信息而不是页面: The page isn’t redirecting properly 这是我的密码: 管理员 代码的第一个版本: def changelist_view(self, request, extra_context=None): if not request.method != 'GET':

我有一个方法,该方法的任务是从以下位置重定向管理面板中的页面:

http://127.0.0.1:8000/admin/events/event/
致:

我得到了一个信息而不是页面:

The page isn’t redirecting properly
这是我的密码: 管理员

代码的第一个版本:

def changelist_view(self, request, extra_context=None):
    if not request.method != 'GET':
        url = '{}?date__lt={}'.format(reverse('admin:events_event_changelist'), date.today())
        return HttpResponseRedirect(url)
编辑后的代码

def changelist_view(self, request, extra_context=None):
    q = request.GET.get('date')
    if not q:
        url = '{}?date__lt={}'.format(reverse('admin:events_event_changelist'), date.today())
        return HttpResponseRedirect(url)

请提示哪里可能是错误代码。

您的浏览器显示的错误消息表明您的站点陷入无限重定向循环。看看你的情况,很清楚为什么:

if not request.method != 'GET':
相当于

if request.method == 'GET':
重定向总是导致
GET
请求,因此您的视图将一次又一次地重定向

我假设您真正想要实现的是仅在没有URL参数的情况下重定向。这些都存储在
请求中。GET
,因此您的情况如下所示:

if not request.GET:

浏览器显示的错误消息表明您的站点陷入无限重定向循环。看看你的情况,很清楚为什么:

if not request.method != 'GET':
相当于

if request.method == 'GET':
重定向总是导致
GET
请求,因此您的视图将一次又一次地重定向

我假设您真正想要实现的是仅在没有URL参数的情况下重定向。这些都存储在
请求中。GET
,因此您的情况如下所示:

if not request.GET:

如果您总是想限制显示的事件,那么重写该方法而不是重定向可能会更容易

class EventAdmin(admin.modelAdmin):
    def get_queryset(self, request):
        qs = super(EventAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            # Allow superusers to see all events
            return qs
        else:
            return qs.filter(date__lt=date.today())

admin.site.register(Event, EventAdmin)

如果您总是想限制显示的事件,那么重写该方法而不是重定向可能会更容易

class EventAdmin(admin.modelAdmin):
    def get_queryset(self, request):
        qs = super(EventAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            # Allow superusers to see all events
            return qs
        else:
            return qs.filter(date__lt=date.today())

admin.site.register(Event, EventAdmin)

电视上有什么节目?您能否在终端中显示tracebackI GET空页的信息和此输出:
[12/Jun/2018 10:19:34]“GET/admin/events/event/?date\uu lt=2018-06-12 HTTP/1.1”302 0
终端上显示了什么?您是否可以将带有信息的tracebackI GET空页和此输出显示在以下文本中:
[12/Jun/2018 10:19:34]“GET/admin/events/event/?date\uu lt=2018-06-12 HTTP/1.1”302 0
谢谢您的回答。你现在可以检查我的编辑吗?我想检查GET是否为空,我的意思是没有
日期
。我更改代码,就像现在的问题一样,问题仍然存在。您正在检查“日期”,但您正在设置的参数是“日期”。另一方面,与其替换初始代码,不如添加新代码,因为现在我的答案没有任何意义。我更改了问题。现在使用
q=request.GET.GET('date\u lt')
我得到一个错误:
AttributeError at/admin/events/event/'NoneType'对象没有属性“has\u header”
如果您发布的代码是您的完整视图,那么如果条件不匹配,您将不会返回任何内容。您可能想从超类调用该方法,类似于
return super().changelist\u视图(self,request)
我添加了:
return super().changelist\u视图(self,request,extra\u context=None)
在admin.py中的方法末尾,但我得到了:
'EventAdmin'对象没有属性“COOKIES”
谢谢您的回答。你现在可以检查我的编辑吗?我想检查GET是否为空,我的意思是没有
日期
。我更改代码,就像现在的问题一样,问题仍然存在。您正在检查“日期”,但您正在设置的参数是“日期”。另一方面,与其替换初始代码,不如添加新代码,因为现在我的答案没有任何意义。我更改了问题。现在使用
q=request.GET.GET('date\u lt')
我得到一个错误:
AttributeError at/admin/events/event/'NoneType'对象没有属性“has\u header”
如果您发布的代码是您的完整视图,那么如果条件不匹配,您将不会返回任何内容。您可能希望从超类调用该方法,类似于
return super().changelist\u视图(self,request)
I添加了:
return super().changelist\u视图(self,request,extra\u context=None)
在admin.py中的方法末尾,但我得到:
'EventAdmin'对象没有“COOKIES”属性。
我尝试过,但在页面顶部(
date\u hierarchy
)我需要完整的日期。例如,在清单上,我需要日期到今天。但是在
date\u hierarchy
中,我需要完整的日期。我尝试过,但在页面顶部(
date\u hierarchy
)我需要完整的日期。例如,在清单上,我需要日期到今天。但是在
date\u层次结构中
我需要完整的日期。