Ich benutze Django 1.11.3 und ich versuche Benutzer umzuleiten, nachdem die "Speichern" Taste auf einem Modell in Admin gedrückt wurde. Also, meine admin.py
Datei muß ich folgenden Code (ein Teil davon):'NoneType' Objekt hat kein Attribut 'has_header'
from django.contrib import admin
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.http import HttpResponseRedirect
from .models import Info
class InfoAdmin(admin.ModelAdmin):
def response_change(self, request, object, form_url=''):
if(object.type == 1):
return HttpResponseRedirect('/admin/pict/data/add/?info=' + str(object.info))
else:
return HttpResponseRedirect('/admin/pict/article/')
admin.site.register(Info, InfoAdmin)
aber ich bekomme die folgende Fehlermeldung, nachdem ich die Taste drücken:
AttributeError at /admin/pict/info/58/change/
'NoneType' object has no attribute 'has_header'
Ich habe auch versucht mit redirect
und HttpResponse
, aber der Fehler bleibt bestehen.
Voll Zurückverfolgungs:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/pict/info/58/change/
Django Version: 1.11.3
Python Version: 3.5.2
Installed Applications:
['pict.apps.PictConfig',
'suit',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'massadmin']
Installed Middleware:
['whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/contrib/admin/options.py" in wrapper
551. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
58. add_never_cache_headers(response)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/utils/cache.py" in add_never_cache_headers
274. patch_response_headers(response, cache_timeout=-1)
File "/Users/mick/.virtualenvs/gbs/lib/python3.5/site-packages/django/utils/cache.py" in patch_response_headers
265. if not response.has_header('Expires'):
Exception Type: AttributeError at /admin/pict/info/58/change/
Exception Value: 'NoneType' object has no attribute 'has_header'
Was mache ich falsch?
Vielen Dank! Jedes Mal, wenn ich zu "/ admin/pict/article /" umgeleitet werde, auch wenn "obj.type" ** 1 ** ist (basierend auf Druck). Irgendeine Idee? – user8980530
Überprüfen Sie, was 'repr (obj.type)' und 'type (obj.type)' sind. Vielleicht ist "obj.type" die Zeichenkette "1", nicht die Ganzzahl "1". – Alasdair
Ja, Typ war das Problem. Danke vielmals! – user8980530