Django后台设置--遇到的问题与解决方案
2017-03-31 20:17
225 查看
1. 后台如何管理项目中的models
新建的Django工程会自动引用admin 应用,新建后台可以通过 createsuperuser 命令建立后台admin超级管理员,我遇到的第一个问题,就是如何像后台中管理用户和角色一样,增删查改我自己的model,这个网上极为常见,就是在admin.py文件中注册自己的models就可以
2. models在后台显示我们想要的名字
注册models之后我们会发现登录后台后,管理我们model的那一项显示的是model名称。但是吧UserModel我自己知道是啥,别人不知道怎么办,我需要给他中文名称,这个时候需要在models.py文件下修改model对应的类,添加class Meta
这时候再去看,是不是变化了
3. models里面的对象,名字显示的不太好,我不想让他显示id
这个时候添加__unicode__方法
4. 后台显示英文,我想要中文
需要在settings里面设置LANGUAGE_CODE为zh-CN
而且,要在中间件设置中,使local高于common
5. 后台添加的model对象,涉及到时间的字段,为啥我设置了auto_now=True,但是看起来不是很对呢
需要设置时区,在settings文件中修改
这回和北京时间没差了
6. 后台显示的标题叫Django后台管理,我需要改成自己的怎么办?
先说明,这个方法不好,因为除非你将admin整个集成到项目里,要不然换个环境就得改一次,但是我没找到好方法。。。
Python27.11\Lib\site-packages\django\contrib\admin\templates\admin目录下查看admin应用的模板,发现有django后台管理字样的,并且被多次继承的模板就是
base_site.html,就改他
这样就变了,在提醒一次!!慎用,有好方法求各位前辈留言告知。
7. 最后
Django管理员最好建立安全的新角色,比如有外键关联,为了保险起见,新建管理员账户,分配安全的角色,没有过分的删除权限
这些算是我自己遇到的坑,欢迎交流指导
新建的Django工程会自动引用admin 应用,新建后台可以通过 createsuperuser 命令建立后台admin超级管理员,我遇到的第一个问题,就是如何像后台中管理用户和角色一样,增删查改我自己的model,这个网上极为常见,就是在admin.py文件中注册自己的models就可以
1 from django.contrib import admin 2 from util.models import UserModel 3 4 admin.site.register(UserModel)
1 # 我们建立的model,用户相关的id,最好不要使用简单数字 2 class UserModel(models.Model): 3 uid = models.UUIDField(primary_key=True, default=uuid.uuid4) 4 email = models.EmailField(unique=True) 5 username = models.CharField(max_length=20) 6 salt = models.CharField(max_length=128) 7 password = models.CharField(max_length=128) 8 date_joined = models.DateTimeField(auto_now_add=True)
2. models在后台显示我们想要的名字
注册models之后我们会发现登录后台后,管理我们model的那一项显示的是model名称。但是吧UserModel我自己知道是啥,别人不知道怎么办,我需要给他中文名称,这个时候需要在models.py文件下修改model对应的类,添加class Meta
class UserModel(models.Model): uid = models.UUIDField(primary_key=True, default=uuid.uuid4) email = models.EmailField(unique=True) username = models.CharField(max_length=20) salt = models.CharField(max_length=128) password = models.CharField(max_length=128) date_joined = models.DateTimeField(auto_now_add=True) class Meta: verbose_name = "用户管理" verbose_name_plural = "用户管理"
这时候再去看,是不是变化了
3. models里面的对象,名字显示的不太好,我不想让他显示id
这个时候添加__unicode__方法
1 class UserModel(models.Model): 2 uid = models.UUIDField(primary_key=True, default=uuid.uuid4) 3 email = models.EmailField(unique=True) 4 username = models.CharField(max_length=20) 5 salt = models.CharField(max_length=128) 6 password = models.CharField(max_length=128) 7 date_joined = models.DateTimeField(auto_now_add=True) 8 9 def __unicode__(self): 10 return self.username 11 12 class Meta: 13 verbose_name = "用户管理" 14 verbose_name_plural = "用户管理"
4. 后台显示英文,我想要中文
需要在settings里面设置LANGUAGE_CODE为zh-CN
1 LANGUAGE_CODE = 'zh_CN' 2 USE_I18N = True 3 USE_L10N = True
而且,要在中间件设置中,使local高于common
5. 后台添加的model对象,涉及到时间的字段,为啥我设置了auto_now=True,但是看起来不是很对呢
需要设置时区,在settings文件中修改
TIME_ZONE = 'Asia/Shanghai' # TIME_ZONE = 'UTC'
这回和北京时间没差了
6. 后台显示的标题叫Django后台管理,我需要改成自己的怎么办?
先说明,这个方法不好,因为除非你将admin整个集成到项目里,要不然换个环境就得改一次,但是我没找到好方法。。。
Python27.11\Lib\site-packages\django\contrib\admin\templates\admin目录下查看admin应用的模板,发现有django后台管理字样的,并且被多次继承的模板就是
base_site.html,就改他
1 {% extends "admin/base.html" %} 2 3 {% block title %}{{ title }} | 名字{% endblock %} 4 5 {% block branding %} 6 <h1 id="site-name"><a href="{% url 'admin:index' %}">名字</a></h1> 7 {% endblock %} 8 9 {% block nav-global %}{% endblock %}
这样就变了,在提醒一次!!慎用,有好方法求各位前辈留言告知。
7. 最后
Django管理员最好建立安全的新角色,比如有外键关联,为了保险起见,新建管理员账户,分配安全的角色,没有过分的删除权限
这些算是我自己遇到的坑,欢迎交流指导
相关文章推荐
- Linux设置静态ip后遇到的问题及其解决方案
- 项目中遇到的问题以及解决方案(Java后台)
- Django后台开发笔记①:关于DjangoUeditor与python3存在兼容性问题的解决方案(即解决图片无法上传问题)
- python在设置编码和写csv文件遇到的问题以及解决方案
- ImageView设置selector遇到的小问题及解决方案记录
- 阿里云服务器设置-图文教程完整版本及在配置过程中遇到的问题解决方案
- Python3+Django+uwsgi+nginx部署及遇到的问题解决方案
- UIKit和Cocos2d-x的整合使用;设置CCEAGLView背景为透明,来显示背后的UIView; 以及整合中遇到的问题的解决方案
- Tomcat 设置自启动时遇到的错误问题与解决方案
- C#设置IE代理及遇到问题的解决方案
- Flash与后台编码兼容性问题的解决方案
- [转]DW中出现 "以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息" 问题的解决方案
- 在MyEclipse下创建工程时,遇到的中文乱码问题及解决方案
- Sony新机全新安装XP时遇到问题的解决方案
- 在servlet设置javabean(最近学习j2ee遇到这个问题,在百度上找到的很好的回答)
- struts学习中遇到的小问题及解决方案
- 笔记本新机全新安装XP时遇到问题的解决方案(针对新的Vista机型装xp的解决方案)
- 使用Mencoder进行视频转换遇到的问题和相关解决方案
- MyEclipse中配置Web Service Client可能遇到问题及解决方案(转)
- 使用Ajax.net遇到的问题-使用会话时提示错误"只有在配置文件或 Page 指令中将启用会话状态设置为真时,才可以使用会话状态