django-admin2/example/blog/admin2.py

69 lines
1.8 KiB
Python
Raw Normal View History

2013-05-18 10:57:01 +00:00
# Import your custom models
from django.contrib.auth.models import Group, User
from django.contrib import messages
2013-05-31 15:38:34 +00:00
from rest_framework.relations import PrimaryKeyRelatedField
2013-05-18 10:57:01 +00:00
import djadmin2
from djadmin2.actions import DeleteSelectedAction
from djadmin2.forms import UserCreationForm, UserChangeForm
from djadmin2.apiviews import Admin2APISerializer
from .actions import CustomPublishAction
2013-05-31 15:38:34 +00:00
from .models import Post, Comment
class GroupSerializer(Admin2APISerializer):
permissions = PrimaryKeyRelatedField(many=True)
class Meta:
model = Group
class GroupAdmin2(djadmin2.ModelAdmin2):
api_serializer_class = GroupSerializer
class UserSerializer(Admin2APISerializer):
user_permissions = PrimaryKeyRelatedField(many=True)
class Meta:
model = User
exclude = ('passwords',)
class CommentInline(djadmin2.Admin2Inline):
2013-05-19 09:21:25 +00:00
model = Comment
def unpublish_items(request, queryset):
queryset.update(published=False)
messages.add_message(request, messages.INFO, u'Items unpublished')
unpublish_items.description = 'Unpublish selected items'
class PostAdmin(djadmin2.ModelAdmin2):
list_actions = [DeleteSelectedAction, CustomPublishAction, unpublish_items]
2013-05-19 09:21:25 +00:00
inlines = [CommentInline]
2013-06-06 21:25:36 +00:00
search_fields = ('title', '^body')
2013-06-06 21:25:36 +00:00
class CommentAdmin(djadmin2.ModelAdmin2):
search_fields = ('body', '=post__title')
2013-05-19 09:21:25 +00:00
class UserAdmin2(djadmin2.ModelAdmin2):
create_form_class = UserCreationForm
update_form_class = UserChangeForm
2013-06-06 21:25:36 +00:00
search_fields = ('username', 'groups__name')
api_serializer_class = UserSerializer
# Register each model with the admin
2013-05-19 09:21:25 +00:00
djadmin2.default.register(Post, PostAdmin)
2013-06-06 21:25:36 +00:00
djadmin2.default.register(Comment, CommentAdmin)
2013-05-19 08:09:12 +00:00
djadmin2.default.register(User, UserAdmin2)
djadmin2.default.register(Group, GroupAdmin2)