django/tests/admin_utils/admin.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

54 lines
1.3 KiB
Python
Raw Normal View History

from django import forms
from django.contrib import admin
from .models import Article, ArticleProxy, Site
class ArticleAdminForm(forms.ModelForm):
nolabel_form_field = forms.BooleanField(required=False)
class Meta:
model = Article
fields = ["title"]
@property
def changed_data(self):
data = super().changed_data
if data:
# Add arbitrary name to changed_data to test
# change message construction.
return data + ["not_a_form_field"]
return data
class ArticleInline(admin.TabularInline):
model = Article
fields = ["title"]
form = ArticleAdminForm
class SiteAdmin(admin.ModelAdmin):
inlines = [ArticleInline]
site = admin.AdminSite(name="admin")
site.register(Article)
site.register(ArticleProxy)
site.register(Site, SiteAdmin)
class CustomAdminSite(admin.AdminSite):
def get_log_entries(self, request):
from django.contrib.contenttypes.models import ContentType
log_entries = super().get_log_entries(request)
return log_entries.filter(
content_type__in=ContentType.objects.get_for_models(
*self._registry.keys()
).values()
)
custom_site = CustomAdminSite(name="custom_admin")
custom_site.register(Article)