54.Meta类中常见的配置

对于一些模型级别的配置。我们可以通过在模型中定义一个类,叫做Meta。然后在这个类中添加一些属性来控制模型的作用。
注意:添加的这个类一定要是Meta,否者的话Django就会不能够识别。
from django.models import models

class Book(models.Model):
	name = models.CharField(max_length=100)
	author = models.CharField(max_length=100, db_column='author_name')

	class Meta:
	# 重新自定义映射到数据库中的表的名字
	db_table = 'book'
以下对Meta类中的一些常用配置进行讲解。
1. db_table:
  • 这个模型映射到数据库中的表名,如果没有指定这个参数,那么在映射的时候就会使用APP名_模型名的形式作为表名。
2.ordering:
  • 设置在提取数据的排序方式。比如我可以通过添加的时间进行排序,示例代码如下:
class Book(models.Model):
	name = models.CharField(max_length=100)
	author = models.CharField(max_length=100, db_column='author_name')
	pub_time = models.DateTimeField(auto_now_add=True)

	# 重写这个类的__str__(self)方法,以后在调用print()方法来打印Book()这个类的对象时,就会执行这个方法,而不会在打印出一个 "Book Object "
	def __str__(self):
	# ()中的表示一个什么样的对象,对象名为Book
	return "<(Book id: %s, name: %s, author: %s, pub_time: %s)>" % (self.id,self.name,self.author,self.pub_time)

	class Meta:
		db_table = 'book'
		# 首先使用pub_time来进行排序,之后如果时间相同的话,就要使用id进行排序,时间要按倒序的顺序进行排序。即离现在时间近的排在最前面,可以通过使用-好进行反转
		ordering = ['-pub_time','id']
		# 在这里使用的是一个列表的形式,里面可以传递多个参数,如果使用靠前的参数没有将数据进行排序完成的话,就可以依次使用靠后的参数进行排序。
		
在views.py中定义一个视图函数:
def order_view(request):
	# 首先定义一个Book类的对象books,获取这个对象中的所有数据可以使用objects.all()
	books = Book.objects.all()
	# 此时如果不重写类的__str__(self)方法,调用print()方法就会打印出 Book Objects x
	for book in books:
		print(book)
	return HttpResponse('排序成功了!')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长大的小蚂蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值