Django项目实战:在线作业管理系统(3)

Django 提供了基于 web 的管理工具。

可通过命令来创建超级用户:

python manage.py createsuperuser
python manage.py runserver

通过访问 http://127.0.0.1 :8000/admin 即可进入后台。

管理页面的功能强大,可以通过代码自定义页面显示。部分代码如下:

# project/admin.py

from django.contrib import admin
from .models import *
from django.contrib.auth.models import User
from django.utils.html import format_html

admin.site.site_header = '作业管理系统'
admin.site.site_header = '作业管理系统'
empty_value_display = "空值"
admin_order_field = ('modified',)

class StudentAdmin(admin.ModelAdmin):
    '''设置列表可显示的字段'''
    list_display = ('name','gender','created','modified',)
    '''设置过滤选项'''
    # list_filter = ('',)
    '''每页显示条目数'''
    list_per_page = 5
    '''设置可编辑字段'''
    list_editable = ()
    '''按日期月份筛选'''
    date_hierarchy = 'created'
    '''按发布日期排序'''
    ordering = ('-created',)
    '''下拉菜单修改'''
    # raw_id_fields = ('',)
    # readonly_fields = ('',)
    '''设置带链接字段'''
    # list_display_links = ('',)
    '''可搜索字段'''
    search_fields = ('name',)
    '''多对多字段'''
    # filter_horizontal = ('',)
admin.site.register(Student, StudentAdmin)

class CourseInline(admin.TabularInline):
    model = Course
    fields = ('cname', 'classes', 'opened',)
class TeacherAdmin(admin.ModelAdmin):
    list_display = ('name','gender','created','modified',)
    list_per_page = 5
    list_editable = ()
    date_hierarchy = 'created'
    ordering = ('-created',)
    inlines = [
        CourseInline,
    ]
    search_fields = ('name',)
admin.site.register(Teacher, TeacherAdmin)

class HomeworkInline(admin.TabularInline):
    model = Homework
    fields = ('title', 'status','group',)
class CourseAdmin(admin.ModelAdmin):
    list_display = ('cname','classes','opened',)
    list_filter = ('opened',)
    list_per_page = 5
    list_editable = ('opened',)
    inlines = [
        HomeworkInline,
    ]
    raw_id_fields = ('teacher',)
    search_fields = ('cname',)
admin.site.register(Course, CourseAdmin)

class HandinInline(admin.TabularInline):
    model = Handin
    fields = ('course','author','score',)
class HomeworkAdmin(admin.ModelAdmin):
    list_display = ('title','status','created','modified','group','handin_count')
    list_filter = ('status','published',)
    list_per_page = 5
    list_editable = ('status',)
    inlines = [
        HandinInline,
    ]
    raw_id_fields = ('course',)
    list_display_links = ('title',)
    date_hierarchy = 'modified'
    ordering = ('-modified',)
    search_fields = ('title',)
    def handin_count(self,obj):
        count = len(obj.handin.all())
        if count:
        	return count
        else:
        	return format_html(
        			'<span style="color:red;">暂无人提交</span>',
        		)
    handin_count.short_description = '已提交作业数量'
    '''自定义actions'''
    actions = ['make_published']
    def make_published(self, request, queryset):
        queryset.update(status='p')

    make_published.short_description = "发布所选作业"

admin.site.register(Homework, HomeworkAdmin)

直接刷新页面即可,效果图如下: 

 

  • 1
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值