Skip to content

Instantly share code, notes, and snippets.

@dublado
Forked from alexisskodak/admin.py
Created April 28, 2022 20:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save dublado/c4e6e22fdcb2cc89c61fead2356f15d4 to your computer and use it in GitHub Desktop.
Save dublado/c4e6e22fdcb2cc89c61fead2356f15d4 to your computer and use it in GitHub Desktop.
DJANGO ADMIN Add_view, save_model, and change_view override example django admin
from .models import Post, Picture
from .forms import PostForm
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
...
def add_view(self, request, form_url="", extra_context=None):
extra_context = extra_context or {}
extra_context['form'] = self.get_form(request)
return super(PostAdmin, self).add_view(request, form_url=form_url, extra_context=extra_context)
def change_view(self, request, object_id, form_url="", extra_context=None):
extra_context = extra_context or {}
post = Post.objects.get(id=object_id)
extra_context["form"] = self.get_form(instance=post, request=request)
return super(PostAdmin, self).change_view(request, object_id, form_url=form_url, extra_context=extra_context)
def save_model(self, request, obj, form, change):
obj.save()
pictures = request.FILES.getlist('pictures')
for picture in pictures:
Picture.objects.create(post=obj, image=picture)
return super().save_model(request, obj, form, change)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment