Вы можете создать модель прокси , а затем немного обновить набор запросов, чтобы удовлетворить ваши требования.
class UnapprovedRestaurant(Restaurant):
class Meta:
proxy=True
class UbapprovedRestaurantAdmin(admin.ModelAdmin):
def get_queryset(self, *args, **kwargs):
return Restaurant.objects.filter(is_approved=False)
admin.site.register(UnapprovedRestaurant, UbapprovedRestaurantAdmin)
В случае, если вы не хотите отделить свою страницу администратора для этих2 статуса.Затем я предпочитаю, чтобы вы создали пользовательский фильтр для своей страницы администратора, чтобы вы могли фильтровать данные на основе определенного условия, например так:
class RestaurantFilter(admin.SimpleListFilter):
def lookups(self, request, model_admin):
return (
'approved': 'Approved',
'unapproved': 'Unapproved'
)
def queryset(self, request, queryset):
value = self.value()
if value is None:
return queryset
elif value == 'approved':
return queryset.filter(is_approved=True)
elif value == 'unapproved':
return queryset.filter(is_approved=False)
class RestaurantAdmin(admin.ModelAdmin):
list_filter = (RestaurantFilter, )
admin.site.register(Restaurant, RestaurantAdmin)
Надеюсь, это поможет!