对于一些模型级别的配置。我们可以通过在模型中定义一个类,叫做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('排序成功了!')

最新文章

  1. Jser 设计模式系列之面向对象 - 接口封装与继承
  2. Mysql zip包在Windows上安装配置
  3. postgresql是如何处理死连接(转)
  4. java.io.StreamCorruptedException: invalid type code: AC错误的解决方法
  5. One Page Scroll – 实现苹果风格的单页滚动效果
  6. 新闻发布系统&lt;分页&gt;
  7. 第三次冲刺spring会议(第五次会议)
  8. 201521123007《Java程序设计》第2周学习总结
  9. 在WebBrowser控件使用js调用C#方法
  10. python web开发-flask访问请求数据request
  11. Android 开发 8.0版本启动Service的方法
  12. python 调用阿里云云解析api添加记录
  13. UVa 11762 Race to 1 (数学期望 + 记忆化搜索)
  14. TCP/IP协议体系结构简介
  15. 20145101《Java程序设计》第二周学习总结
  16. .size和.empty
  17. 基于NABCD评论探路者团队贪吃蛇作品及改进建议
  18. OpenSceneGraph3.4.0+Qt5.6.1MinGW开发环境部署
  19. objectARX 添加线型下拉组合框空间 CAcUiLineTypeComboBox
  20. java gzip压缩与解压

热门文章

  1. python OpenCV安装
  2. MacBook通过SSH远程访问Parallel中的Ubuntu简明教程
  3. rfc文档
  4. 加密算法极先锋之MD5算法
  5. HttpMessageNotReadableException
  6. C# protobuf自动更新cs文件
  7. [PHP] 使用PHP在mongodb中进行count查询
  8. Spring Boot从入门到精通(一)搭建第一个Spring Boot程序
  9. PMP--1.6 项目经理
  10. ts中类的方法和抽象类