我使用TabularInline类创建了一个管理员视图。使用此视图,就不可能像标准ModelAdmin视图中那样让用户根据自己的喜好对表进行排序/排序。我想实现这一目标。我正在使用Django 2.2.1。
我的模型包含TimeFrame,由TimeSlots组成。 这就是我的model.py的样子:
from django.db import models
class TimeFrame(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class TimeSlot(models.Model):
DAY_CHOICES = ('work', 'Work'), ('weekend', 'Weekend')
begin_time = models.TimeField()
end_time = models.TimeField()
reference = models.CharField(max_length=30)
day = models.CharField(max_length=30, choices=DAY_CHOICES)
timeframe = models.ForeignKey('TimeFrame', on_delete=models.CASCADE)
我不想注册单独的TimeSlot管理员视图,因为TimeSlot始终是TimeFrame的一部分。它们不是一个人存在。
from django.contrib import admin
from .models import *
class TimeSlotInline(admin.TabularInline):
model = TimeSlot
ordering = ("day", "begin_time") #hard-coded ordering
@admin.register(TimeFrame)
class TimeFrameAdmin(admin.ModelAdmin):
inlines = [TimeSlotInline]
使管理员用户能够像在标准ModelAdmin视图中那样进行排序。