Django-----定制后台以及修改模型

我们打开后台会发现显示的字段仅仅包含article总的字段,需要看里面的内容的话我们需要点击进去看,有没有定制的方法把定义的字段显示出来呢?

1.方法一:通过model里面修改:使用self方法返回对象类:

返回一个标题:

def __str__(self):
    return self.title

返回一个对象:

def  __str__(self):
    return "<Artacire%s>"%self.title

2.方法二:在admin里面修改,这种方法比较常用。

建立一个class类:

class ArtcirleAdmin(admin.ModelAdmin):
    list_display = ("id","title","content",)#注意:必须设置字段为list_dispaly
    ordering = ("id",)
admin.site.register(Artcirle,ArtcirleAdmin)

ordering是一个排序的规则:

3.使用装饰器注册:

前面的注册都是使用admin.site.register()的方式注册。

这里使用装饰器的方法注册:这种写法更加清晰明了。

@admin.register(Artcirle)
class ArtcirleAdmin(admin.ModelAdmin):
    list_display = ("id","title","content",)#注意:必须设置字段为list_dispaly
    ordering = ("id",)

二、添加字段

1.添加字段需要跟新一下数据库: 使用python manage.py makemigrations,和 python manage.py migrate 命令。

法一:按提示输入默认值设置。

class Artcirle(models.Model):#创建数据模型
    title = models.CharField(max_length = 10)
    content = models.TextField()
    created_time = models.DateTimeField()

法二:设置默认值。需要导入:utils

from django.db import models
from django.utils import timezone
# Create your models here.
class Artcirle(models.Model):#创建数据模型
    title = models.CharField(max_length = 10)
    content = models.TextField()
    created_time = models.DateTimeField(default = timezone.now)
    # def __str__(self):
    #     return self.title

法三:设值为auto_now_add 自动添加当前时间:

from django.db import models
from django.utils import timezone
# Create your models here.
class Artcirle(models.Model):#创建数据模型
    title = models.CharField(max_length = 10)
    content = models.TextField()
    created_time = models.DateTimeField(auto_now_add = True)

    # def __str__(self):
    #     return self.title

2.添加最近一次修改时间 使用:auto_add

from django.db import models
from django.utils import timezone
# Create your models here.
class Artcirle(models.Model):#创建数据模型
    title = models.CharField(max_length = 10)
    content = models.TextField()
    created_time = models.DateTimeField(auto_now_add = True)
    created_updated_time = models.DateTimeField(auto_now = True)

3.添加一个删除的标记

on_detele = models.BooleanField(default = False)

在后台标记:默认不删除。

让删除的字段不显示在页面上:在views里面设置:filter(条件)

def artcirle_list(request):
    artcirles = Artcirle.objects.filter(on_detele = False)
    contenx = {}
    contenx[‘artcirle_list‘] = artcirles
    return render_to_response(‘list.html‘,contenx)

4.添加作者,阅读次数:

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
# Create your models here.
class Artcirle(models.Model):#创建数据模型
    title = models.CharField(max_length = 10)
    content = models.TextField()
    created_time = models.DateTimeField(auto_now_add = True)#创建时间
    created_updated_time = models.DateTimeField(auto_now = True)#跟新时间
    on_detele = models.BooleanField(default = False)#删除标记
    author = models.ForeignKey(User, on_delete = models.DO_NOTHING,default=1)#需要设置参数作者
    reader_time = models.IntegerField(default= 0)#阅读次数
    # def __str__(self):
    #     return self.title

原文地址:https://www.cnblogs.com/jeepzp/p/8370743.html

时间: 2024-10-21 11:35:43

Django-----定制后台以及修改模型的相关文章

Django Admin Cookbook-14如何在Django Admin后台移除“删除所选”操作

14.如何在Django Admin后台移除"删除所选"操作? 默认情况下,Django Admin后台的listview模型列表页,会有一个Delete Selected删除所选操作.假设你需要再从Hero管理模型中移除该删除操作. ModelAdmin.get_actions方法可以返回所有的操作方法.通过覆盖此方法,移除其中delete_selected方法,便可可以从下拉列表中删除它.将Hero管理模型的代码修改如下: def get_actions(self, request

Django Admin Cookbook-38如何获取特定对象的Django Admin后台URL

38.如何获取特定对象的Django Admin后台URL? Hero模型有一个children字段,显示每个英雄的孩子的名字.你被要求将每个childrin链接到Hero模型更改页面.实现如下: @admin.register(Hero) class HeroAdmin(admin.ModelAdmin, ExportCsvMixin): ... def children_display(self, obj): display_text = ", ".join([ "<

互金时代如何定制个性化信用评分模型

互金时代如何定制个性化信用评分模型 相比起传统金融机构,互联网金融以个性化服务取胜,由此也催生了各类深耕细分市场的互联网金融公司.不过这样一来,原来传统风控的玩法和经验,已经很难满足新兴互联网金融公司的风控需求. 如何用最为省时省力的方法,打造契合自身业务特色的个性化风控模型?如何利用先进的大数据手段,迅速提高风控的效率,降低风控的成本?今天就让处座来介绍一下吧. 风控将成互联网金融发展"痛点" 在经历2013至2014年的爆发式发展之后,互联网金融行业逐渐步入到规范化发展阶段.201

EEPlat 的 后台业务处理模型

后台处理包含数据处理.业务逻辑及业务流程等服务端操作的部分.相关的元模型包括业务对象元模型.业务对象属性元模型.服务元模型.参数元模型.业务规则元模型.工作流元模型.如下图所示: 业务对象是业务数据和逻辑的抽象.在一般的实现上它通常对应数据库中的一张表,也可以表示更大或更小的业务范围,例如一个独立的业务模块(销售模块),一张表可以拥有多个业务对象,一个业务对象也可以包含多张表.业务对象通过服务和数据总线完成业务逻辑. 数据总线是业务对象之间共享数据.交换数据的媒介.数据总线是线程独享的.线程安全

DeDeCMS后台批量修改替换sql语句大全

有时候后台文章内容.标题或者锚文本出错,需要修改批量修改,那么就需要用dedecms的sql语句进行批量修改了. 利用dedecms后台SQL命令行工具批量修改内容,路径和超链接等信息.语句 DEDECMS SQL命令批量替换1.更改文章中的内容update dede_addonarticle set body=replace(body,'原来的字符','替换后的字符')例子解释:update dede_addonarticle set body=replace(body,'软件下载','插件下

CMDB之Django admin 后台app操作

Django的后台功能非常实用: 首先需注册app到后台 cat asset/apps.py from __future__ import unicode_literals from django.apps import AppConfig class AssetConfig(AppConfig):     name = 'asset'     verbose_name = '环境列表'   # 后台显示的名称      cat asset/admin.py from django.contri

Django基础核心技术之Model模型的介绍与设计

Django基础核心技术之Model模型的介绍与设计原创: Yunbo Shi Python Web与Django开发 2018-05-03Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用.今天小编我就拼了老命来用千字长文给你来介绍下第一项Django核心基础知识之Model的设计吧.想持续了解后续Django Web开发技术请订阅我的公众号[Python与Django大咖之路].

Unity3D修改模型的网格数据

[狗刨学习网] 模型导入unity后,可以使用unity的Inspector面板对模型在某个坐标轴上进行平移.旋转和缩放操作(如图1).  图 1 Inspector面板提供功能是所见即所得的,调整后立刻可以看到效果,相当的方便.但是这些功能还不能完全满足游戏开发的要求,比如为了减轻美工的工作量一些游戏对场景中的模型标准作出了一些规定,使这些模块化的小模型能按照一定的规律拼接成丰富多样的大模型.拼接过程往往要对模型的local coordinates进行调整才能最终形成一个"无缝"的大

Django Admin后台添加用户时出现报错:1452

如果在使用Django Admin后台添加用户时出现报错: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxproject`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id