xiaoqianbook

 admin默认登录地址

http://127.0.0.1:8000/admin

创建创建管理员账户

python manage.py createsuperuser

app01下的admin.py

from django.contrib import admin
from app01 import models
# Register your models here.

class AccountAdmin(admin.ModelAdmin):
    list_display = (\'username\',\'email\',\'signature\')#显示表的字段
    search_fields = (\'username\',\'email\') #模糊查找
    list_filter = (\'email\',)#过滤,把要过滤的字段放到对应列表里就可以
    list_per_page = 5 #按每5个数据分页
    list_display_links = [\'email\',]#点下这个字段就跳到修改页
    list_editable = [\'signature\',]

class ArticleAdmin(admin.ModelAdmin):
    list_display = (\'title\',\'pub_date\',\'account\',\'get_tags\')
    list_filter = (\'account\',\'pub_date\')
    #fields = (\'title\',\'content\',(\'pub_date\',\'read_count\'))#多个字段显示在一行
    #exclude = (\'read_count\',\'tags\')#不展示这些字段
    date_hierarchy = "pub_date"#按日期分类显示数据
    
    #分组显示数据
    fieldsets = (
        (\'文章内容\',{
            \'fields\':[\'title\',\'content\'],
            \'classes\': (\'wide\', \'extrapretty\'),
        }),(
            \'发布相关\',{
                #\'classes\': (\'collapse\',),
                \'fields\':(\'account\',\'pub_date\',\'tags\',\'read_count\')
            }
        )
    )

    #radio_fields = {\'account\': admin.HORIZONTAL}#把外键或choice字段由下拉框变成单选框
    #autocomplete_fields = [\'account\',]#自动补全,外键查询数据多时,方便查找
    raw_id_fields = [\'account\',]#id显示
    filter_horizontal = (\'tags\',)#用多对多字段
    readonly_fields = (\'read_count\',)#只读字段
    #filter_vertical = (\'tags\',)



class TagAdmin(admin.ModelAdmin):
    list_display = [\'name\',\'colored_name\']

admin.site.register(models.Account,AccountAdmin)
admin.site.register(models.Article,ArticleAdmin)
admin.site.register(models.Tag,TagAdmin)
 

app01下的models.py

from django.db import models
from django.utils.html import format_html

# Create your models here.


class Account(models.Model):
    """账户表"""

    username = models.CharField(max_length=64,unique=True)
    email = models.EmailField(unique=True)
    password = models.CharField(max_length=255,blank=True)
    register_date = models.DateTimeField(auto_now_add=True)
    signature = models.CharField("签名",max_length=255,null=True,blank=True)
    #article_set = Article
    def __str__(self):
        return self.username


class Article(models.Model):
    """文章表"""

    title = models.CharField(max_length=255,unique=True)
    content = models.TextField()
    account = models.ForeignKey("Account",on_delete=models.CASCADE)
    tags = models.ManyToManyField("Tag",null=True,blank=True)
    pub_date = models.DateField()
    read_count = models.IntegerField(verbose_name="阅读",default=0)


    class Meta:
        #verbose_name = "文章"
        verbose_name_plural = "文章"


    def get_tags(self):
        return  \',\'.join([i.name for i in self.tags.all()])

    def get_comment(self):
        return 10


    def __str__(self):
        return "%s - %s " %(self.title,self.account)


class Tag(models.Model):
    """标签表"""
    name = models.CharField(max_length=64,unique=True)
    date = models.DateTimeField(auto_now_add=True)
    color_code = models.CharField(max_length=6)

    def colored_name(self):
        return format_html(\'<span style="color: #{};">{}</span>\',self.color_code,self.name,
        )


    def __str__(self):
        return self.name

 

参考 http://www.cnblogs.com/alex3714/articles/8997376.html

分类:

技术点:

相关文章:

  • 2021-07-12
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2021-08-10
  • 2022-01-20
  • 2021-12-01
  • 2021-06-21
猜你喜欢
  • 2021-12-23
  • 2021-12-27
  • 2022-12-23
  • 2021-11-27
  • 2022-01-10
  • 2022-01-07
相关资源
相似解决方案