【DJango学习】 数据库模型方法

# 自定义模型类 管理器使用方法 

class BookInfoManager(model.Manager):

  # 重写all 

  def all(self):

    return self.filter(is_delete=False)

class BookInfo():

  ................

  # 自定义模型类  objects将不再使用 

  query = BookInfoManage()

  

# 查询

  BookInfo.query.all()   # 查询所有 未被逻辑删除的数据 

二、Django 表单和模板的使用

    views.py 

       class IndexView(View):

    context = {

    "city":"beijing"  

}

  return render(request,"index.html",context)

  urls.py

  urlpattern = [

  url(r"^booktest/$", views.IndexView.as_view())

]

  setting.py 

  urlpattern=[

  url(r"^",booktest.urls)

]

  templates -----> index.html

       <h1>{{city}}</h1>

模型类表单 

from . import BookInfo   # 从模型类中 定义字段 

class BookInfoForm(forms.ModelForm):

  class Meta:

    model = BookInfo

     fields = ('btitle','bpub_date')

admin站点

1、python manage.py createsuperuser  # 创建超级管理员 

2、settring.py  LANGUAGE_CODE = "zh-hans"  TIME_ZONE = "Asia/ShangHai"

 models.py

@admin.register(HeroInfo)
class HeroInfoAdmin(admin.ModelAdmin):
    # 显示个数
    list_per_page = 5
    # 执行操作
    actions_on_top = True
    actions_on_bottom = True
    # 显示条目
    list_display = ["id", "hname", "hcomment", "hbook",'read']
    # 过滤器
    list_filter = ['hbook']
    # 搜索框
    search_fields = ['hname']
class BookInfoAmin(admin.ModelAdmin):
    list_display = ['id', 'btitle', 'pub_date']

admin.site.register(BookInfo, BookInfoAmin)
    def __str__(self):
        return self.btitle

    def pub_date(self):
        return self.bpub_date.strftime('%Y{y}%m{m}%d{d}').format(y='', m='', d='')
  def read(self):
    return self.hbook.bread
pub_date.short_description
= "发布日期" pub_date.admin_order_field = "bpub_date"

未完待续

原文地址:https://www.cnblogs.com/oscarli/p/12329735.html