对于一些模型级别的配置。我们可以通过在模型中定义一个类,叫做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 )
def __str__ ( self) :
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'
ordering = [ '-pub_time' , 'id' ]
在views.py中定义一个视图函数:
def order_view ( request) :
books = Book. objects. all ( )
for book in books:
print ( book)
return HttpResponse( '排序成功了!' )