[英]Using proxy model in django admin to customize change list view
I have a model which looks like this : 我有一个看起来像这样的模型:
class Change(models.Model):
Reference = models.CharField(max_length=100)
Choices = ((1,"Pending"),(2,"In Progress",),(3,"Closed"))
Status = models.SmallIntegerField(choices=Choices, default=1, max_length=1)
Since it is not possible to register another Change model,I am using a proxy model called ClosedChange as follows : 由于无法注册其他变更模型,因此我正在使用一种称为ClosedChange的代理模型,如下所示:
class ClosedChange(Change):
class Meta:
proxy = True
verbose_name = u"Closed Changes"
What i want to achieve is that whenever any user changes the status of a change to Closed ,it should disappear from the change list view of
Change and appear in the change list view of
ClosedChange and vice versa.
我想要实现的是,每当有用户更改了改变封闭的状态,应该从
改变的改变列表视图中消失,并出现在
ClosedChange,反之亦然的改变列表视图。 How do i achieve this ??
我该如何实现?
You can specify the queryset in the model admin: 您可以在模型admin中指定queryset:
class ChangeAdmin(admin.ModelAdmin):
def get_queryset(self, request):
return Change.objects.exclude(status='closed')
class ClosedChangeAdmin(admin.ModelAdmin):
def get_queryset(self, request):
return ClosedChange.objects.filter(status='closed')
admin.site.register(Change, ChangeAdmin)
admin.site.register(ClosedChange, ClosedChangeAdmin)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.