首页 技术 正文
技术 2022年11月13日
0 收藏 414 点赞 3,340 浏览 2292 个字

1. 后台如何管理项目中的models

  新建的Django工程会自动引用admin 应用,新建后台可以通过 createsuperuser 命令建立后台admin超级管理员,我遇到的第一个问题,就是如何像后台中管理用户和角色一样,增删查改我自己的model,这个网上极为常见,就是在admin.py文件中注册自己的models就可以

 from django.contrib import admin
from util.models import UserModel admin.site.register(UserModel)
 # 我们建立的model,用户相关的id,最好不要使用简单数字
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)

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__方法

 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) def __unicode__(self):
return self.username class Meta:
verbose_name = "用户管理"
verbose_name_plural = "用户管理"

4. 后台显示英文,我想要中文

  需要在settings里面设置LANGUAGE_CODE为zh-CN

 LANGUAGE_CODE = 'zh_CN'
USE_I18N = True
USE_L10N = True

而且,要在中间件设置中,使local高于common

Django后台设置–遇到的问题与解决方案

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,就改他

 {% extends "admin/base.html" %} {% block title %}{{ title }} | 名字{% endblock %} {% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}" rel="external nofollow" >名字</a></h1>
{% endblock %} {% block nav-global %}{% endblock %}

这样就变了,在提醒一次!!慎用,有好方法求各位前辈留言告知。

7. 最后

  Django管理员最好建立安全的新角色,比如有外键关联,为了保险起见,新建管理员账户,分配安全的角色,没有过分的删除权限

这些算是我自己遇到的坑,欢迎交流指导

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289