最快速解决‘django-admin‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

876 阅读1分钟

在这里插入图片描述 首先找到 在这里插入图片描述 说明我们的django下载成功了 但因为环境变量的问题,无法实现这个django-admin命令 故我们在pycharm的终端里操作 在这里插入图片描述 输入:django-admin startproject newpro 即可创建django项目了 在这里插入图片描述

from django.contrib import admin from .models import Article from django.utils.html import format_html

class ArticleAdmin(admin.ModelAdmin): # Custom admin list view list_display = ('title', 'author', 'status', 'create_date', ) # list_display_links = ('title', ) # default # sortable_by # a sub set of list_display. All fields are sortable by default.

'''define which fields are editable on list view'''
list_editable = ('status', )


'''10 items per page'''
list_per_page = 5


'''Max 200 when clicking show all'''
list_max_show_all = 200 #default


'''Calling select related objects to reduce SQL queries'''
list_select_related = ('author', )


'''Render a search box at top. ^, =, @, None=icontains'''
search_fields = ['title']


'''Render date options at top. do not accept tuple'''
date_hierarchy = 'create_date'


'''Replacement value for empty field'''
empty_value_display = 'NA'


'''filter options'''
list_filter = ('status', 'author__is_superuser', ) 

admin.site.register(Article, ArticleAdmin)

class ArticleAdmin(admin.ModelAdmin):
 
 
    # Custom admin list view
    list_display = ('title', 'author', 'status', 'create_date', 'custom_date', )
    '''中间省略'''    
    '''custom field on list view'''
    def custom_date(self, obj):
        return format_html(
            '<span style="color: red;">{}</span>',
            obj.create_date.strftime("%Y-%m-%d %H:%M:%S")
        )
 
 
    custom_date.short_description = '定制格式及颜色'
  1. 重写save_model方法

在前例中,我们在创建文章时手动选择作者是非常愚蠢的行为,我们完全可以在创建模型实例时将当前用户与文章作者相关联(哪个登录用户添加的文章哪个就是作者)。首先你可以通过fields或exclude选项或自定义form把author字段从添加和修改表单中移除,然后重写save_model方法将当前用户设为作者。在这里我们还使用了更高级的fieldsets选项,在定义fields时把author排除在外,还将status选项的样式设为collapse(折叠)。

再次修改admin.py

Register your models here.

class ArticleAdmin(admin.ModelAdmin):

# Custom admin list view
list_display = ('title', 'author', 'status', 'create_date', 'custom_date', )

'''中间省略'''    
fieldsets = (
    (None, {
        'fields': ('title', 'body', ),
        'classes': ('extrapretty', ),
    }),
    ('Advanced options', {
        'classes': ('collapse',),
        'fields': ('status', ),
    }),
)


'''Custom model methods'''
def save_model(self, request, obj, form, change):
    # If creating new article, associate request.user with author.
    if not change:
        obj.author = request.user
    super().save_model(request, obj, form, change