Cannot remove 'SOA to edit'
If you remove the default SOA : 'SOA to edit', you can't add a new extension because it will try to get_or_create a default SOA while building the form and there seems to be a problem with that.
Debug info:
Internal Server Error: /machines/add_extension/
RevisionManagementError at /machines/add_extension/
There is no active revision for this thread
Request Method: GET
Request URL: https://re2o.rez-rennes.fr/machines/add_extension/
Django Version: 1.10.7
Python Executable: /usr/bin/python3
Python Version: 3.5.3
Python Path: ['/usr/lib/python3/dist-packages/git/ext/gitdb', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages', '/var/www/re2o', '/usr/lib/python3/dist-packages/gitdb/ext/smmap']
Server time: dim, 29 Avr 2018 00:00:54 +0200
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap3',
'rest_framework',
'reversion',
'users',
'machines',
'cotisations',
'topologie',
'search',
're2o',
'preferences',
'logs',
'api',
'django_extensions')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'reversion.middleware.RevisionMiddleware')
Traceback:
File "/usr/lib/python3/dist-packages/django/db/models/query.py" in get_or_create
473. return self.get(**lookup), False
File "/usr/lib/python3/dist-packages/django/db/models/query.py" in get
385. self.model._meta.object_name
During handling of the above exception (SOA matching query does not exist.), another exception occurred:
File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py" in inner
42. response = get_response(request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3/dist-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/var/www/re2o/re2o/acl.py" in wrapper
54. return view(request, *args, **kwargs)
File "/var/www/re2o/machines/views.py" in add_extension
587. extension = ExtensionForm(request.POST or None)
File "/var/www/re2o/machines/forms.py" in __init__
256. super(ExtensionForm, self).__init__(*args, prefix=prefix, **kwargs)
File "/usr/lib/python3/dist-packages/django/forms/models.py" in __init__
278. self.instance = opts.model()
File "/usr/lib/python3/dist-packages/django/db/models/base.py" in __init__
529. val = field.get_default()
File "/usr/lib/python3/dist-packages/django/db/models/fields/related.py" in get_default
898. field_default = super(ForeignKey, self).get_default()
File "/usr/lib/python3/dist-packages/django/db/models/fields/__init__.py" in get_default
769. return self.default()
File "/var/www/re2o/machines/models.py" in new_default_soa
514. mail="postmaser@example.com"
File "/usr/lib/python3/dist-packages/django/db/models/manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/db/models/query.py" in get_or_create
475. return self._create_object_from_params(lookup, params)
File "/usr/lib/python3/dist-packages/django/db/models/query.py" in _create_object_from_params
505. obj = self.create(**params)
File "/usr/lib/python3/dist-packages/django/db/models/query.py" in create
399. obj.save(force_insert=True, using=self.db)
File "/var/www/re2o/re2o/mixins.py" in save
36. reversion.set_comment("Création")
File "/usr/lib/python3/dist-packages/reversion/revisions.py" in set_comment
122. _update_frame(comment=comment)
File "/usr/lib/python3/dist-packages/reversion/revisions.py" in _update_frame
87. _local.stack = _local.stack[:-1] + (_current_frame()._replace(**kwargs),)
File "/usr/lib/python3/dist-packages/reversion/revisions.py" in _current_frame
53. raise RevisionManagementError("There is no active revision for this thread")
Exception Type: RevisionManagementError at /machines/add_extension/
Exception Value: There is no active revision for this thread
Request information:
USER: moamoak
GET: No GET data
POST: No POST data
FILES: No FILES data
COOKIES:
csrftoken = '2K42AsdSjF6GQPkW15JPY2eqtlu92Of2DMhkbo45Cw7bFlLJvru0bor2GLCw2rKQ'
sessionid = '1fyp1rcsffpjmd0jdb2k1lmmc4gjxb8q'
META:
CONTEXT_DOCUMENT_ROOT = '/var/www/html'
CONTEXT_PREFIX = ''
CSRF_COOKIE = '2K42AsdSjF6GQPkW15JPY2eqtlu92Of2DMhkbo45Cw7bFlLJvru0bor2GLCw2rKQ'
DOCUMENT_ROOT = '/var/www/html'
GATEWAY_INTERFACE = 'CGI/1.1'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE = 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3'
HTTP_CONNECTION = 'keep-alive'
HTTP_COOKIE = 'csrftoken=2K42AsdSjF6GQPkW15JPY2eqtlu92Of2DMhkbo45Cw7bFlLJvru0bor2GLCw2rKQ; sessionid=1fyp1rcsffpjmd0jdb2k1lmmc4gjxb8q'
HTTP_HOST = 're2o.rez-rennes.fr'
HTTP_REFERER = 'https://re2o.rez-rennes.fr/machines/index_extension/'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'
PATH_INFO = '/machines/add_extension/'
PATH_TRANSLATED = '/var/www/re2o/re2o/wsgi.py/machines/add_extension/'
QUERY_STRING = ''
REMOTE_ADDR = '37.59.97.14'
REMOTE_PORT = '60096'
REQUEST_METHOD = 'GET'
REQUEST_SCHEME = 'https'
REQUEST_URI = '/machines/add_extension/'
SCRIPT_FILENAME = '/var/www/re2o/re2o/wsgi.py'
SCRIPT_NAME = ''
SERVER_ADDR = '193.54.193.7'
SERVER_ADMIN = '[no address given]'
SERVER_NAME = 're2o.rez-rennes.fr'
SERVER_PORT = '443'
SERVER_PROTOCOL = 'HTTP/1.1'
SERVER_SIGNATURE = '<address>Apache/2.4.25 (Debian) Server at re2o.rez-rennes.fr Port 443</address>\n'
SERVER_SOFTWARE = 'Apache/2.4.25 (Debian)'
SSL_TLS_SNI = 're2o.rez-rennes.fr'
apache.version =
mod_wsgi.application_group = 're2o.rez-rennes.fr|'
mod_wsgi.callable_object = 'application'
mod_wsgi.daemon_connects = '1'
mod_wsgi.daemon_restarts = '0'
mod_wsgi.daemon_start = '1524952854464657'
mod_wsgi.enable_sendfile = '0'
mod_wsgi.handler_script = ''
mod_wsgi.ignore_activity = '0'
mod_wsgi.listener_host = ''
mod_wsgi.listener_port = '443'
mod_wsgi.path_info = '/machines/add_extension/'
mod_wsgi.process_group = 're2o'
mod_wsgi.queue_start = '1524952854464328'
mod_wsgi.request_handler = 'wsgi-script'
mod_wsgi.request_id = 'I4YwwTeg8GY'
mod_wsgi.request_start = '1524952854464035'
mod_wsgi.script_name = ''
mod_wsgi.script_reloading = '1'
mod_wsgi.script_start = '1524952854464820'
mod_wsgi.thread_id = 4
mod_wsgi.thread_requests = 123
mod_wsgi.total_requests = 296
mod_wsgi.version =
wsgi.errors = <_io.TextIOWrapper encoding='utf-8'>
wsgi.file_wrapper = ''
wsgi.input = <mod_wsgi.Input object at 0x7f303e372ab0>
wsgi.multiprocess = True
wsgi.multithread = True
wsgi.run_once = False
wsgi.url_scheme = 'https'
wsgi.version =
Settings:
Using settings module re2o.settings
ABSOLUTE_URL_OVERRIDES = {}
ADMINS = [('Rezo-admin', 'rezo-admin@rez-rennes.fr'), ('Gabriel Detraz', 'detraz@crans.org'), ('Maël Kervella', 'kervella.mael@gmail.com'), ('Pierre Cadart', 'pierre.cadart@gmail.com')]
AES_KEY = '********************'
ALLOWED_HOSTS = ['10.2.0.7', 're2o.rez', 're2o.rez-rennes.fr', 're2o.rez-rennes.net', 're2o.rez-rennes.org', 're2o.rez-rennes.supelec.fr', 'gorgoroth.rez', 'gorgoroth.rez-rennes.fr', 'gorgoroth.rez-rennes.net', 'gorgoroth.rez-rennes.org', 'gorgoroth.rez-rennes.supelec.fr', 'rezotage.rez', 'rezotage.rez-rennes.fr', 'rezotage.rez-rennes.net', 'rezotage.rez-rennes.org', 'rezotage.rez-rennes.supelec.fr']
APPEND_SLASH = True
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'users.User'
BASE_DIR = '/var/www/re2o'
BOOTSTRAP3 = {'jquery_url': '/static/js/jquery-2.2.4.min.js', 'base_url': '/static/bootstrap/', 'include_jquery': True}
BOOTSTRAP_BASE_URL = '/static/bootstrap/'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = True
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SECURE = True
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
DATABASES = {'default': {'TIME_ZONE': None, 'TEST': {'COLLATION': None, 'CHARSET': None, 'NAME': None, 'MIRROR': None}, 'ATOMIC_REQUESTS': False, 'USER': 're2o', 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.mysql', 'AUTOCOMMIT': True, 'PASSWORD': '********************', 'OPTIONS': {}, 'NAME': 're2o', 'PORT': '', 'HOST': 'bdd.rez'}, 'ldap': {'TIME_ZONE': None, 'TEST': {'COLLATION': None, 'CHARSET': None, 'NAME': None, 'MIRROR': None}, 'ATOMIC_REQUESTS': False, 'USER': 'cn=admin,dc=ldap,dc=rez-rennes,dc=fr', 'CONN_MAX_AGE': 0, 'ENGINE': 'ldapdb.backends.ldap', 'AUTOCOMMIT': True, 'PASSWORD': '********************', 'SUPPORTS_TRANSACTIONS': True, 'PORT': '', 'NAME': 'ldap://ldap.rez/', 'OPTIONS': {}, 'HOST': ''}}
DATABASE_ROUTERS = ['ldapdb.router.Router']
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DB_PASSWORD = '********************'
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_CONTENT_TYPE = 'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
DJANGO_CONTRIB_APPS =
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'valinor.rez-rennes.fr'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 587
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Django] '
EMAIL_TIMEOUT = None
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
EXTERNAL_CONTRIB_APPS =
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = None
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
GID_RANGES = {'posix': [501, 600]}
GRAPH_MODELS = {'all_applications': True, 'group_models': True}
IGNORABLE_404_URLS = []
INSTALLED_APPS =
INTERNAL_IPS = []
LANGUAGES = [('en', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f305511f9b0>), ('fr', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f305511f9e8>)]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LDAP = {'base_userservice_dn': 'ou=service-users,dc=ldap,dc=rez-rennes,dc=fr', 'user_gid': 500, 'base_user_dn': 'cn=Utilisateurs,dc=ldap,dc=rez-rennes,dc=fr', 'base_userservicegroup_dn': 'ou=services,ou=groups,dc=ldap,dc=rez-rennes,dc=fr', 'base_usergroup_dn': 'ou=posix,ou=groups,dc=ldap,dc=rez-rennes,dc=fr'}
LOCALE_PATHS = ['/var/www/re2o/templates/locale']
LOCAL_APPS =
LOGGING = {}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/login/'
LOGOUT_REDIRECT_URL = None
LOGO_PATH = 'static_files/logo.png'
MANAGERS = []
MEDIA_ROOT = '/var/www/re2o/media'
MEDIA_URL = '/media/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE = None
MIDDLEWARE_CLASSES =
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
OPTIONNAL_APPS = 'django_extensions'
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREPEND_WWW = False
ROOT_URLCONF = 're2o.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = None
SECURE_REDIRECT_EXEMPT = []
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'no-reply@rez-rennes.fr'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 10800
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SECURE = True
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 're2o.settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
STATICFILES_DIRS = '/var/www/re2o/static'
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/var/www/re2o/static_files'
STATIC_URL = '/static/'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'APP_DIRS': True, 'DIRS': ['/var/www/re2o/templates'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.request', 're2o.context_processors.context_user']}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'Europe/Paris'
UID_RANGES = {'service-users': [20000, 21000], 'users': [21009, 30000]}
USE_ETAGS = False
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 're2o.wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'