本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.'WSGIRequest' object has no attribute 'user'
完整报错信息
AttributeError at /admin/
'WSGIRequest' object has no attribute 'user'
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.8.18
Exception Type: AttributeError
Exception Value:
'WSGIRequest' object has no attribute 'user'
Exception Location: /Library/Python/2.7/site-packages/django/contrib/admin/sites.py in has_permission, line 162
Python Executable: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Python Version: 2.7.10
解决方法: 将 settings.py 中的 MIDDLEWARE修改为 MIDDLEWARE_CLASSES 可参考:docs.djangoproject.com/ja/1.9/topi…
2.提示用户不存在 通过命令 python manage.py createsuperuser 来创建超级用户,如下所示:
# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: admin@gmail.com
Password:
Password (again):
Superuser created successfully.
3.no such table: django_session 说明没有创建相关的数据表
python manage.py syncdb
4.为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。比如,在 TestModel 中已经创建了模型 Test 。修改 TestModel/admin.py:
from django.contrib import admin
from TestModel.models import Test
# Register your models here.
admin.site.register(Test)
刷新后即可看到 Testmodel 数据表,可进行数据的新增修改操作
5.模板不渲染
问题复现
浏览器可以正常下载CSS文档,但不会加载 原因
可能导致这个问题的原因很多,对于我的环境而言,DTL不允许有标签存在,原因尚不明确。也有可能是配置静态路由出问题。
解决方案
删除即可
6.ajax请求报错
ajax就更加头疼了,首先和form表单的错误一样,要在ajax的url中设置"{% url ‘请求路径的name属性值’ %}",一定要给name属性值加引号,才能识别字符串,其次,引入jquery.cookie.js文件,在请求头中添加headers: {‘X-CSRFToken’: $.cookie(‘csrftoken’)};这俩个操作和form表单中相类似,但在请求后台之后,又会产生 ‘X-Frame-Options’ to 'deny’错误,后来查了一下,大概是因为X-Frame-Options这个http请求标头未在Django响应中出现,但在Java开发就不会出现这个错误,这时候需要在Django的接口方法头上加装饰器@xframe_options_exempt,这样就没有问题了