<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Admin站點 ### Admin站點 ```text 創建項目模板,默認Admin被啟用:python manage.py startproject project醒目 創建管理員的用戶名和密碼:python manage.py createsuperuser 按照提示填寫信息 在應用內admin.py文件完成注冊,就可以在后臺管理中維護模型的數據 from django.contrib import admin from models import * admin.site.register(Students) 查找admin文件:在INSTALLED_APPS項中加入django.contrib.admin,Django就會自動搜索每個應用的admin模塊并將其導入 ``` ## ModelAdmin對象 * ModelAdmin類是模型在Admin界面中的表示形式 * 定義:定義一個類,繼承于admin.ModelAdmin,注冊模型時使用這個類 ```text class StudentsAdmin(admin.ModelAdmin): def gender(self): if self.sgender: return "男" else: return "女" # 設置頁面列的名稱 gender.short_description = "性別" list_display = ['pk','sname','sage',gender,'scontend','sgrade','isDelete'] list_per_page = 10 ``` * 通常定義應用的admin.py文件里 * 使用方式一:注冊參數 ```text admin.site.register(Students,StudentsAdmin) ``` * 使用方式二:注冊裝飾器 ```text from myapp.models import Students @admin.register(Students) class StudentsAdmin(admin.ModelAdmin): ``` * 通過重寫admin.ModelAdmin的屬性規定顯示效果,屬性主要分為列表頁,增加修改頁兩部分 ## 列表頁選項 ### “操作選項”的位置 * actions\__on\_top、actions\_on\_bottom:默認顯示在頁面的頂部_ ```text # 執行動作的位置 # 在底部 actions_on_bottom = True actions_on_top = True ``` ### list\_display * 出現列表中的顯示字段 * 列表類型 * 在列表中,可以是字段名稱,也可以是方法名稱,但是方法名稱默認不能排序 * 在方法中可以使用format\_html\(\)輸出HTML內容 ```text admin.py from django.contrib import admin # Register your models here. from .models import Grades,Students # 注冊 class StudentsInfo(admin.TabularInline): model = Students extra = 2 # class StudentsInfo(admin.StackedInline): # model = Students # extra = 2 @admin.register(Grades) class GradesAdmin(admin.ModelAdmin): inlines = [StudentsInfo] # 列表頁屬性 list_display = ['pk','gname','gdate','ggirlnum','gboynum','isDelete'] list_filter = ['gname'] search_fields = ['gname'] list_per_page = 5 # # 添加、修改頁屬性 # fields = ['ggirlnum','gboynum','gname','gdate','isDelete'] fieldsets = [ ("num",{"fields":['ggirlnum','gboynum']}), ("base",{"fields":['gname','gdate','isDelete']}), ] # admin.site.register(Grades,GradesAdmin) @admin.register(Students) class StudentAdmin(admin.ModelAdmin): def gender(self): if self.sgender: return "男" else: return "女" # 設置頁面列的名稱 gender.short_description = "性別" list_display = ['pk','sname','sage',gender,'scontend','sgrade','isDelete'] list_per_page = 10 # 執行動作的位置 # 在底部 actions_on_bottom = True actions_on_top = False # admin.site.register(Students,StudentAdmin) from .models import Text admin.site.register(Text) models.py from django.db import models # Create your models here. # 班級》學生 ,一對多 # 類里面的屬性,對應數據庫中表的字段 class Grades(models.Model): gname = models.CharField(max_length=20) gdate = models.DateField() ggirlnum = models.IntegerField() gboynum = models.IntegerField() isDelete = models.BooleanField(default=False) # 重寫str def __str__(self): # return "%s-%d-%d" % (self.gname,self.ggirlnum,self.gboynum) return self.gname class StudentsManager(models.Manager): def get_queryset(self): return super(StudentsManager,self).get_queryset().filter(isDelete=False) def createStudent(self,name,age,gender,contend,grade,isDel=False): stu = self.model() # print(type(stu)) stu.sname = name stu.sage = age stu.sgender = gender stu.scontend = contend stu.sgrade = grade return stu class Students(models.Model): # 定義一個類方法創建對象 # cls代表了Students類 @classmethod def createStudent(cls,name,age,gender,contend,grade,isDel=False): stu = cls( sname = name, sage = age, sgender = gender, scontend = contend, sgrade = grade, isDelete = isDel, ) return stu # 自定義模型管理器 # 當自定義模型管理器,objects就不存在了 # stuObj = models.Manager() # stuObj2 = StudentsManager() sname = models.CharField(max_length=20) sgender = models.BooleanField(default=False) sage = models.IntegerField() scontend = models.CharField(max_length=20) isDelete = models.BooleanField(default=False) # 關聯外鍵 sgrade = models.ForeignKey("Grades",on_delete=models.CASCADE) def __str__(self): return self.sname def getName(self): return self.sname # class TempTables(models.Model): # a = models.BooleanField(default=True) from tinymce.models import HTMLField class Text(models.Model): str = HTMLField() ``` * 讓方法排序,為方法指定admin\__order\_filed屬性:_ ```text 在models.py中為Students類增加方法orderName def orderName(self): return format(self.sname) orderName.admin_order_filed = 'sname' ``` * 標題欄名稱:將字段封裝成方法,為方法設置short\_description屬性 ```text @admin.register(Students) class StudentsAdmin(admin.ModelAdmin): def gender(self): if self.sgender: return "男" else: return "女" def getName(self): return self.sname getName.short_description = "姓名" list_display = ['pk', getName, 'sage', gender,] ``` ### list\_filter * 右側欄過濾器,對那些屬性的值進行過濾 * 列表類型 * 只能接受字段 ```text @admin.register(Students) class StudentsAdmin(admin.ModelAdmin): ..... list_filter = ('sname','sage') ``` ### list\_per\_page * 每頁中顯示多少項,默認設置為100 ```text from django.contrib import admin # Register your models here. from myapp.models import Students, Grades @admin.register(Students) class StudentsAdmin(admin.ModelAdmin): ..... list_per_page = 10 ``` ### search\_fileds * 搜索框 * 列表類型,表示在這些字段上進行搜索 * 只能接收字段 ```text class StudentsAdmin(admin.ModelAdmin): ... search_fields = ['sname'] ``` * fieldsets:分組顯示 ```text class StudentsAdmin(admin.ModelAdmin): ... fieldsets = ( ('base',{'fields':('sname','sage')}), ('main',{'fields':('sgender','scontend')}), ) ``` * fields與fieldsets兩者選一 ### 設置可點擊鏈接進入編輯頁面 ```text list_display_links = ('sname','sage') ``` ### 詳細時間分層篩選 * date\_hierarchy ```text date_hierarchy = 'date' ``` ### InlineModelAdmin對象 * 類型InlineModelAdmin:表示在模型的添加或修改頁面嵌入關聯模型的添加或修改 * 子類TabularInline:以表格的形式嵌入 * 子類StackedInline:以塊的形式嵌入 ```text class StudentsInline(admin.TabularInline): model = Students class GradesAdmin(admin.ModelAdmin): inlines = [ StudentsInline, ] admin.site.register(Grades,GradesAdmin) ``` ### 重寫admin模板 * 在項目所在目錄中創建templates目錄,再創建一個admin目錄 * 設置模板查找目錄:修改settings.py的TEMPLATES項,加載模板時會在DIRS列表指定目錄中搜索 ```text TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] ``` * 從django安裝的目錄下\(django/contrib/admin/templates\)將模板頁面的源文件admin/base\_site.html拷貝到第一步創建好的目錄中 * 編輯base\_site.html文件 * 刷新頁面,查看效果 * 其他管理后臺的模板可以按照相同的方式進行修改 ```text base_site.html {% extends 'admin/base.html' %} {% block title %} {{ title }} |{{ site_title|default:_('Django site admin') }} {% endblock %} {% block branding %} <h1 di="site-name"><a href="{% url 'admin:index' %}">學生管理系統</a></h1> {% endblock %} {% block nav-global %} {% endblock %} ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看