1. 後臺如何管理項目中的modelshtml
新建的Django工程會自動引用admin 應用,新建後臺能夠經過 createsuperuser 命令創建後臺admin超級管理員,我遇到的第一個問題,就是如何像後臺中管理用戶和角色同樣,增刪查改我本身的model,這個網上極爲常見,就是在admin.py文件中註冊本身的models就能夠django
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 Metaui
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 = "用戶管理"
這時候再去看,是否是變化了url
3. models裏面的對象,名字顯示的不太好,我不想讓他顯示idspa
這個時候添加__unicode__方法code
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. 後臺顯示英文,我想要中文htm
須要在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管理員最好創建安全的新角色,好比有外鍵關聯,爲了保險起見,新建管理員帳戶,分配安全的角色,沒有過度的刪除權限
這些算是我本身遇到的坑,歡迎交流指導