admin.py:
class ArticleAdmin(admin.ModelAdmin):
list_display = ('id', 'title', 'author', 'status', 'sub_category', 'show_on_main')
list_editable = ('status', 'show_on_main')
inlines = (ParagraphInline,)
list_per_page = 20
actions = ['delete_selected']
def get_queryset(self, request):
if not request.user.is_superuser and not request.user.groups.filter(name='Moderation'):
return Article.objects.filter(author=request.user, archive=False)
return Article.objects.filter(archive=False)
def delete_model(self, request, obj):
obj.archive = True
obj.save()
def delete_selected(self, request, obj):
for item in obj:
item.archive = True
item.save()
Переде удалением статьи устанавливаю ей
archive = True затем создаю новую
ArchiveAdmin:
class ArchiveAdmin(admin.ModelAdmin):
list_display = ('id', 'title', 'author', 'status', 'sub_category', 'show_on_main')
inlines = (ParagraphInline,)
list_per_page = 20
def get_queryset(self, request):
return Article.objects.filter(archive=True)
В конце поместил :
admin.site.register(Article, ArticleAdmin)
admin.site.register(Article, ArchiveAdmin)
Но Django ругается:
django.contrib.admin.sites.AlreadyRegistered: The model Article is already registered
Есть у кого идеи как это можно реализовать ?