django model对象修改_Django-----定制后台以及修改模型

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

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

返回一个标题:

def __str__(self):return self.title

返回一个对象:

def __str__(self):return ""%self.title

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

建立一个class类:

classArtcirleAdmin(admin.ModelAdmin):

list_display= ("id","title","content",)#注意:必须设置字段为list_dispaly

ordering = ("id",)

admin.site.register(Artcirle,ArtcirleAdmin)

ordering是一个排序的规则:

类型的关联的外键有可能没有显示:这需要我们在 model层里面修改一下:

classBlog_type(models.Model):

type_name= models.CharField(max_length = 15)def __str__(self):return self.type_name

def__str__(self):函数是为了显示后台管理的内容。

3.使用装饰器注册:

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

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

@admin.register(Artcirle)classArtcirleAdmin(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 importmodelsfrom django.utils importtimezone#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 importmodelsfrom django.utils importtimezone#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 importmodelsfrom django.utils importtimezone#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(条件)

defartcirle_list(request):

artcirles= Artcirle.objects.filter(on_detele =False)

contenx={}

contenx['artcirle_list'] =artcirlesreturn render_to_response('list.html',contenx)

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

from django.db importmodelsfrom django.utils importtimezonefrom django.contrib.auth.models importUser#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值