Django admin model 汉化显示文字的实现方法

1、将添加blog的后台基本操作

在blog文件夹下新建一个admin.py文件加入一下代码:

from django.contrib import admin
from djcms.apps.blog.models import Post, Category, Tag 

admin.site.register(Post)
admin.site.register(Category)
admin.site.register(Tag) 

重启服务,再到浏览器上登录到后台,是不是增加了对blog的基本操作,不仅比较完善、界面整洁优雅,而且很多都可以自定义,是不是很酷!后续再慢慢研究。

2、汉化表单、完善表单

目前位置,后台的表单前面的标签label基本上都是默认的字段名字,各种表单也是初始的状态,下面我们简单做些修改。修改后的模型代码如下:

# coding:utf8
from django.db import models 

class Category(models.Model):
 """
 文章分类
 """
 title = models.CharField('名称', max_length=100)  # 分类名称
 alias = models.CharField('别名', max_length=100)  # 分类别名(用于 url 优化)
 sort = models.SmallIntegerField('排序')     # 排序 

 class Meta:
  verbose_name = '分类'
  verbose_name_plural = '分类'
  ordering = ['sort'] 

 def __unicode__(self):
  return self.title 

class Tag(models.Model):
 """
 文章标签
 """
 tagname = models.CharField('标签名', max_length=60)  # 标签名
 post_ids = models.TextField(editable=False)    # 对应的文章 id 集合的序列 

 class Meta:
  verbose_name = '标签'
  verbose_name_plural = '标签' 

 def __unicode__(self):
  return self.tagname 

class Post(models.Model):
 """
 博客文章
 """
 # 文章发布状态
 CONTENT_STATUS_PUBLISHED = 1
 # 文章草稿箱状态
 CONTENT_STATUS_DRAFT = 2
 # 文章状态选项
 CONTENT_STATUS_CHOICES = (
  (CONTENT_STATUS_PUBLISHED, '发布'),
  (CONTENT_STATUS_DRAFT, '草稿箱'),
 ) 

 title = models.CharField('标题', max_length=100)     # 标题
 content = models.TextField('文章内容')        # 内容
 excerpt = models.TextField('摘要')         # 摘要
 publish_date = models.DateTimeField('发表时间')      # 发表时间
 status = models.IntegerField('状态',
         choices=CONTENT_STATUS_CHOICES,
         default=CONTENT_STATUS_PUBLISHED)  # 状态:1为正式发布,2为草稿箱
 comments_count = models.IntegerField(default=0, editable=False)  # 评论总数
 view_count = models.IntegerField(default=0, editable=False)   # 浏览总数 

 alias = models.CharField('别名', max_length=100, blank=True)  # 别名(用于 url 优化)
 keywords = models.CharField('关键字', max_length=500, blank=True) # 关键字
 description = models.TextField('描述', blank=True)     # 描述 

 user = models.ForeignKey("auth.User",
        verbose_name = '作者',
        related_name="%(class)ss")     # 作者
 categories = models.ManyToManyField(Category, blank=True,
          verbose_name = '分类',
          related_name="posts")   # 分类 

 class Meta:
  verbose_name = '文章'
  verbose_name_plural = '文章'
  ordering = ['publish_date'] 

 def __unicode__(self):
  return self.title

其中将文章状态选项CONTENT_STATUS_CHOICES 写在Post类中更加合理,而Meta中的verbose_name表示单数形式的显示,verbose_name_plural表示复数形式的显示,因为中文的单数和复数一般不作区别,如果是英文一般默认会的复数是加上了s

进一步完善文章的列表显示和表单,在blog下面的admin.py文件中加入PostAdmin类:

class PostAdmin(admin.ModelAdmin):
 list_display = ('title', 'publish_date', 'user', 'status')  # 列表显示的字段
 search_fields = ('title',)          # 列表包含根据指定字段搜索
 list_filter = ('publish_date',)         # 右侧过滤选项

 # 分组表单
 fieldsets = (
  ('基本信息', {'fields': ('title', 'content', 'excerpt', 'publish_date','status', 'user', 'categories')}),
  ('Meta Data', {'fields': ('alias', 'keywords', 'description')}),
 )

注意,有3种类型的域不能按如上方式添加自定义名称:ManyToManyField,OneToOneField,ForeignKey。而应该显示指定:

class Film(models.Model):
 title = models.CharField('片名', max_length=100)
 actors = models.ManyToManyField(Actor,verbose_name='演员')
 pub_date = models.DateField('发行日期')
 publisher = models.ForeignKey(Publisher,verbose_name='发行商')

如果想修改通过admin自动生成的后台管理标题 请用国际化处理, 如果改变布局可以重写admin的页面

以上这篇Django admin model 汉化显示文字的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Django admin.py 在修改/添加表单界面显示额外字段的方法

    问题描述: 我有个blogextra表继承自blog,现在我想在blog的admin管理change界面显示对应的blogextra字段 解决方法: 可以使用admin.py的inline内联方法 代码: models.py from django.db import models # Create your models here. class Blog(models.Model): Name = models.CharField(max_length=350) def __unicode__

  • Python中Django 后台自定义表单控件

    在 django 中我们可以在 admin.py 中添加 ModelAdmin,这样就能很方便地在后台进行增删改查的操作.然而,对应 Model 生成的表单,并不友好,我们希望能像前端开发一样做出各种类型的控件,这就得对其后台的表单进行自定义. 其实 django 已经为我们提供了一些可用的表单控件,比如:多选框.单选按钮等,下面就以单选按钮为例: # forms.py from django import forms from .models import MyModel class MyFo

  • Django admin model 汉化显示文字的实现方法

    1.将添加blog的后台基本操作 在blog文件夹下新建一个admin.py文件加入一下代码: from django.contrib import admin from djcms.apps.blog.models import Post, Category, Tag admin.site.register(Post) admin.site.register(Category) admin.site.register(Tag) 重启服务,再到浏览器上登录到后台,是不是增加了对blog的基本操作

  • django admin后管定制-显示字段的实例

    先说需求: 1.django 自带了admin后管,如果我们需要使用,只需把我们定义的models注册即可: 2.但如果只是简单注册,那显示的很简单,根本看不到每行记录的描述信息,全部以model object 形式显示,必须点击进去才能看到信息,太不方便,如下图: 1.显示关键信息 效果如下图,这样就好看多啦. 2.配置 在 admin.py 文件中配置一下就行. admin.py # Underwriter admin model class UnderwriterAdmin(admin.M

  • 在django admin详情表单显示中添加自定义控件的实现

    在开发中有需求在详情显示里外键字段内容,并且添加按钮弹窗内容,以及按钮跳转内容. 以前并没有做过相似的开发,我们的后台是xadmin,当时正在研究xadmin的插件,于是想着能不能用插件去做,后来发现太麻烦,而且实现起来我也没研究通,主要是添加按钮之类的没搞懂,于是就换了一种简单的方法. 首先先讲解下思路,admin中有几个界面,一个是展示的list界面,一个是详情的model界面,model中其实就是详情detail,里面记录了此条数据的全部内容,精简来说就是一个form表单的内容展示. 那么

  • 自定义django admin model表单提交的例子

    如下所示: 希望可以从对admin提交的密码加密,并验证电话号码均为数字. 查看admin.py from django.contrib import admin class courseAdmin(admin.ModelAdmin) 我们自定义的管理类,继承与admin.ModelAdmin 查看对应admin模块对应源码 __init__.py from django.contrib.admin.options import ( HORIZONTAL, VERTICAL, ModelAdmi

  • javascript实现鼠标移到Image上方时显示文字效果的方法

    本文实例讲述了javascript实现鼠标移到Image上方时显示文字效果的方法.分享给大家供大家参考.具体如下: 先看一下运行效果截图: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://w

  • TabLayout关联ViewPager后不显示文字的解决方法

    当使用addTab()方法给tablayout动态添加文字时可能会出现不显示标题文字的问题,而真实情况并不是不显示文字,而是ViewPager又给TabLayout加了许多空的标题,导致之前手动添加的标题被挤到后面,不信你多往后翻一翻是不是就出来了.那么这些空的标题是如何产生的呢,通过分析TabLayout源码很快就查出这个问题,其中有个方法的代码是这样的: private void populateFromPagerAdapter() { removeAllTabs(); if (mPager

  • 分享最新Sublime Text4 Build 4107注册码(密钥)汉化及完美永久破解方法

    使用Sublime Text做开发工具的小伙伴又有版本可以更新啦! 费话不多说先把Sublime Text4注册码贴出来 Sublime Text4注册码(密钥) ----- BEGIN LICENSE ----- TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D136 94D7F7D4 95BC8C1C 527DA828 560

  • Django Admin中增加导出CSV功能过程解析

    参考 https://books.agiliq.com/projects/django-admin-cookbook/en/latest/export.html 在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图: 增加导出CSV功能 在Django Admin中每个模型的Admin类(继承至admin.ModelAdmin), 我们可以通过actions增加支持的动作, 值为当前类存在的方法名, 例如: ....... @admin.register(Issue

  • Django Admin中增加导出Excel功能过程解析

    在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图: 增加导出Excel功能 在Django Admin中每个模型的Admin类(继承至admin.ModelAdmin), 我们可以通过actions增加支持的动作, 值为当前类存在的方法名, 例如: ....... @admin.register(Issue) class IssueAdmin(admin.ModelAdmin): ...... actions = ['export_as_excel'] # 增加

  • django admin search_fields placeholder 管理后台添加搜索框提示文字

    本文主要介绍了django admin search_fields placeholder 管理后台添加搜索框提示文字,分享给大家,具体如下: 如图, Django admin后台生成的搜索框, 默认是没有提示文字的, 不够友好; 网上也没搜到什么好的示例, 于是自己动手实现了一个 0. 已经存在的app名为carousel, 大致相当于如下操作/代码 $ python manage.py startapp carousel # settings.py ``` INSTALLED_APPS =

随机推荐