· 6 years ago · Sep 14, 2019, 02:50 PM
1AssertionError at /api/v1/stats/article/1/anchor/
2The `.create()` method does not support writable dotted-source fields by default.
3Write an explicit `.create()` method for serializer `application.stats.api.v1.serializers.Anchor`, or set `read_only=True` on dotted-source serializer fields.
4
5Request Method: POST
6Request URL: http://0.0.0.0:8000/api/v1/stats/article/1/anchor/
7Django Version: 2.0
8Python Executable: /usr/local/bin/python
9Python Version: 3.6.9
10Python Path: ['/wiki', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
11Server time: Sat, 14 Sep 2019 14:41:26 +0000
12Installed Applications:
13['application.api',
14 'application.stats',
15 'application.utils',
16 'application.registration',
17 'application.frontend',
18 'django_filters',
19 'rest_framework',
20 'rest_framework_swagger',
21 'django.contrib.admin',
22 'django.contrib.auth',
23 'django.contrib.contenttypes',
24 'django.contrib.sessions',
25 'django.contrib.messages',
26 'django.contrib.staticfiles']
27Installed Middleware:
28['django.middleware.security.SecurityMiddleware',
29 'django.contrib.sessions.middleware.SessionMiddleware',
30 'django.middleware.common.CommonMiddleware',
31 'django.middleware.csrf.CsrfViewMiddleware',
32 'django.contrib.auth.middleware.AuthenticationMiddleware',
33 'django.contrib.messages.middleware.MessageMiddleware',
34 'django.middleware.clickjacking.XFrameOptionsMiddleware']
35
36
37Traceback:
38
39File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
40 35. response = get_response(request)
41
42File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
43 128. response = self.process_exception_by_middleware(e, request)
44
45File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
46 126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
47
48File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
49 54. return view_func(*args, **kwargs)
50
51File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py" in view
52 116. return self.dispatch(request, *args, **kwargs)
53
54File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
55 495. response = self.handle_exception(exc)
56
57File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
58 455. self.raise_uncaught_exception(exc)
59
60File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
61 492. response = handler(request, *args, **kwargs)
62
63File "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py" in create
64 21. self.perform_create(serializer)
65
66File "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py" in perform_create
67 26. serializer.save()
68
69File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in save
70 214. self.instance = self.create(validated_data)
71
72File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in create
73 926. raise_errors_on_nested_writes('create', self, validated_data)
74
75File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py" in raise_errors_on_nested_writes
76 841. class_name=serializer.__class__.__name__
77
78Exception Type: AssertionError at /api/v1/stats/article/1/anchor/
79Exception Value: The `.create()` method does not support writable dotted-source fields by default.
80Write an explicit `.create()` method for serializer `application.stats.api.v1.serializers.Anchor`, or set `read_only=True` on dotted-source serializer fields.
81Request information:
82USER: AnonymousUser
83
84GET: No GET data
85
86POST: No POST data
87
88FILES: No FILES data
89
90COOKIES: No cookie data
91
92META:
93CONTENT_LENGTH = '223'
94CONTENT_TYPE = 'application/json'
95DJANGO_SETTINGS_MODULE = 'wiki.settings'
96GATEWAY_INTERFACE = 'CGI/1.1'
97GPG_KEY = '0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D'
98HOME = '/root'
99HOSTNAME = 'f2361a7e5a80'
100HTTP_ACCEPT = '*/*'
101HTTP_ACCEPT_ENCODING = 'gzip, deflate'
102HTTP_CACHE_CONTROL = 'no-cache'
103HTTP_CONNECTION = 'keep-alive'
104HTTP_HOST = '0.0.0.0:8000'
105HTTP_POSTMAN_TOKEN = '5ee5f19b-70e4-4a6c-ade9-920272940e2f'
106HTTP_USER_AGENT = 'PostmanRuntime/7.16.3'
107HTTP_X_CSRFTOKEN = 'ziGUwkPYbiBp57RBgsFkvXsR0Jc4uORCRCgJdutDGsX7nF9m5uu5epKmnis4nWC0'
108LANG = 'C.UTF-8'
109PATH = '/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
110PATH_INFO = '/api/v1/stats/article/1/anchor/'
111PWD = '/wiki'
112PYTHONDONTWRITEBYTECODE = '1'
113PYTHONUNBUFFERED = '1'
114PYTHON_PIP_VERSION = '19.1.1'
115PYTHON_VERSION = '3.6.9'
116QUERY_STRING = ''
117REMOTE_ADDR = '172.19.0.1'
118REMOTE_HOST = ''
119REQUEST_METHOD = 'POST'
120RUN_MAIN = 'true'
121SCRIPT_NAME = ''
122SERVER_NAME = 'f2361a7e5a80'
123SERVER_PORT = '8000'
124SERVER_PROTOCOL = 'HTTP/1.1'
125SERVER_SOFTWARE = 'WSGIServer/0.2'
126SHLVL = '1'
127TZ = 'UTC'
128_ = '/usr/local/bin/python'
129wsgi.errors = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>
130wsgi.file_wrapper = ''
131wsgi.input = <_io.BufferedReader name=5>
132wsgi.multiprocess = False
133wsgi.multithread = True
134wsgi.run_once = False
135wsgi.url_scheme = 'http'
136wsgi.version = '(1, 0)'
137
138Settings:
139Using settings module wiki.settings
140ABSOLUTE_URL_OVERRIDES = {}
141ADMINS = []
142ALLOWED_HOSTS = ['*']
143APPEND_SLASH = True
144AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
145AUTH_PASSWORD_VALIDATORS = '********************'
146AUTH_USER_MODEL = 'auth.User'
147BASE_DIR = '/wiki'
148CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
149CACHE_MIDDLEWARE_ALIAS = 'default'
150CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
151CACHE_MIDDLEWARE_SECONDS = 600
152CSRF_COOKIE_AGE = 31449600
153CSRF_COOKIE_DOMAIN = None
154CSRF_COOKIE_HTTPONLY = False
155CSRF_COOKIE_NAME = 'csrftoken'
156CSRF_COOKIE_PATH = '/'
157CSRF_COOKIE_SECURE = False
158CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
159CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
160CSRF_TRUSTED_ORIGINS = []
161CSRF_USE_SESSIONS = False
162DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql', 'NAME': 'wiki', 'USER': 'wiki', 'PASSWORD': '********************', 'HOST': 'database', 'PORT': 5432, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
163DATABASE_ROUTERS = []
164DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
165DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
166DATETIME_FORMAT = 'N j, Y, P'
167DATETIME_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']
168DATE_FORMAT = 'N j, Y'
169DATE_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']
170DEBUG = True
171DEBUG_PROPAGATE_EXCEPTIONS = False
172DECIMAL_SEPARATOR = '.'
173DEFAULT_CHARSET = 'utf-8'
174DEFAULT_CONTENT_TYPE = 'text/html'
175DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
176DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
177DEFAULT_FROM_EMAIL = 'webmaster@localhost'
178DEFAULT_INDEX_TABLESPACE = ''
179DEFAULT_TABLESPACE = ''
180DISALLOWED_USER_AGENTS = []
181EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
182EMAIL_HOST = 'localhost'
183EMAIL_HOST_PASSWORD = '********************'
184EMAIL_HOST_USER = ''
185EMAIL_PORT = 25
186EMAIL_SSL_CERTFILE = None
187EMAIL_SSL_KEYFILE = '********************'
188EMAIL_SUBJECT_PREFIX = '[Django] '
189EMAIL_TIMEOUT = None
190EMAIL_USE_LOCALTIME = False
191EMAIL_USE_SSL = False
192EMAIL_USE_TLS = False
193FILE_CHARSET = 'utf-8'
194FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
195FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
196FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
197FILE_UPLOAD_PERMISSIONS = None
198FILE_UPLOAD_TEMP_DIR = None
199FIRST_DAY_OF_WEEK = 0
200FIXTURE_DIRS = []
201FORCE_SCRIPT_NAME = None
202FORMAT_MODULE_PATH = None
203FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
204IGNORABLE_404_URLS = []
205INSTALLED_APPS = ['application.api', 'application.stats', 'application.utils', 'application.registration', 'application.frontend', 'django_filters', 'rest_framework', 'rest_framework_swagger', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']
206INTERNAL_IPS = []
207LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
208LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
209LANGUAGE_CODE = 'en-us'
210LANGUAGE_COOKIE_AGE = None
211LANGUAGE_COOKIE_DOMAIN = None
212LANGUAGE_COOKIE_NAME = 'django_language'
213LANGUAGE_COOKIE_PATH = '/'
214LOCALE_PATHS = []
215LOGGING = {}
216LOGGING_CONFIG = 'logging.config.dictConfig'
217LOGIN_REDIRECT_URL = '/accounts/profile/'
218LOGIN_URL = '/accounts/login/'
219LOGOUT_REDIRECT_URL = None
220MANAGERS = []
221MEDIA_ROOT = '/wiki/media'
222MEDIA_URL = '/media/'
223MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
224MIDDLEWARE = ['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']
225MIGRATION_MODULES = {}
226MONTH_DAY_FORMAT = 'F j'
227NUMBER_GROUPING = 0
228PASSWORD_HASHERS = '********************'
229PASSWORD_RESET_TIMEOUT_DAYS = '********************'
230PREPEND_WWW = False
231PROJECT_APPS = ['application.api', 'application.stats', 'application.utils', 'application.registration', 'application.frontend']
232REST_FRAMEWORK = {'DATE_FORMAT': '%Y-%m-%d', 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'PAGE_SIZE': 500}
233ROOT_URLCONF = 'wiki.urls'
234SECRET_KEY = '********************'
235SECURE_BROWSER_XSS_FILTER = False
236SECURE_CONTENT_TYPE_NOSNIFF = False
237SECURE_HSTS_INCLUDE_SUBDOMAINS = False
238SECURE_HSTS_PRELOAD = False
239SECURE_HSTS_SECONDS = 0
240SECURE_PROXY_SSL_HEADER = None
241SECURE_REDIRECT_EXEMPT = []
242SECURE_SSL_HOST = None
243SECURE_SSL_REDIRECT = False
244SERVER_EMAIL = 'root@localhost'
245SESSION_CACHE_ALIAS = 'default'
246SESSION_COOKIE_AGE = 1209600
247SESSION_COOKIE_DOMAIN = None
248SESSION_COOKIE_HTTPONLY = True
249SESSION_COOKIE_NAME = 'sessionid'
250SESSION_COOKIE_PATH = '/'
251SESSION_COOKIE_SECURE = False
252SESSION_ENGINE = 'django.contrib.sessions.backends.db'
253SESSION_EXPIRE_AT_BROWSER_CLOSE = False
254SESSION_FILE_PATH = None
255SESSION_SAVE_EVERY_REQUEST = False
256SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
257SETTINGS_MODULE = 'wiki.settings'
258SHORT_DATETIME_FORMAT = 'm/d/Y P'
259SHORT_DATE_FORMAT = 'm/d/Y'
260SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
261SILENCED_SYSTEM_CHECKS = []
262STATICFILES_DIRS = []
263STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
264STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
265STATIC_ROOT = '/wiki/static'
266STATIC_URL = '/static/'
267SYSTEM_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']
268TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/wiki/templates'], 'APP_DIRS': True, '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']}}]
269TEST_NON_SERIALIZED_APPS = []
270TEST_RUNNER = 'django.test.runner.DiscoverRunner'
271THIRD_PARTY_APPS = ['django_filters', 'rest_framework', 'rest_framework_swagger']
272THOUSAND_SEPARATOR = ','
273TIME_FORMAT = 'P'
274TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
275TIME_ZONE = 'UTC'
276USE_ETAGS = False
277USE_I18N = True
278USE_L10N = True
279USE_THOUSAND_SEPARATOR = False
280USE_TZ = True
281USE_X_FORWARDED_HOST = False
282USE_X_FORWARDED_PORT = False
283WSGI_APPLICATION = 'wiki.wsgi.application'
284X_FRAME_OPTIONS = 'SAMEORIGIN'
285YEAR_MONTH_FORMAT = 'F Y'
286
287
288You're seeing this error because you have DEBUG = True in your
289Django settings file. Change that to False, and Django will
290display a standard page generated by the handler for this status code.