Django後臺設置--遇到的問題與解決方案

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管理員最好創建安全的新角色,好比有外鍵關聯,爲了保險起見,新建管理員帳戶,分配安全的角色,沒有過度的刪除權限

 

這些算是我本身遇到的坑,歡迎交流指導

相關文章
相關標籤/搜索