Skip to content

Instantly share code, notes, and snippets.

@gijs
Created April 20, 2010 13:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gijs/372399 to your computer and use it in GitHub Desktop.
Save gijs/372399 to your computer and use it in GitHub Desktop.
import operator
from django.db import models
from django.http import HttpResponse, HttpResponseNotFound
from django.db.models.query import QuerySet
from django.utils.encoding import smart_str
from django.contrib import admin
from django.conf.urls.defaults import *
from autocomplete_admin import *
from filmdb.models import *
class PersonInline(admin.TabularInline):
model = Person.films.through
class DirectorInline(admin.TabularInline):
model = Director.films.through
exclude = ('description',)
class ActorInline(InlineAutocompleteAdmin):
related_search_fields = { 'person': ('first_name', 'last_name',), }
model = Actor.films.through
class FilmLocationInline(admin.TabularInline):
model = FilmLocation.films.through
class CinematographerInline(admin.TabularInline):
model = Cinematographer.films.through
class ComposerInline(admin.TabularInline):
model = Composer.films.through
class EditorInline(admin.TabularInline):
model = Editor.films.through
class ProducerInline(admin.TabularInline):
model = Producer.films.through
class ScreenwriterInline(admin.TabularInline):
model = Screenwriter.films.through
class ArtDirectorInline(admin.TabularInline):
model = ArtDirector.films.through
class CompanyInline(admin.TabularInline):
model = Company.films.through
class FilmImageInline(admin.TabularInline):
model = FilmImage
exclude = ('caption', 'tags', )
class FilmAdmin(FkAutocompleteAdmin):
prepopulated_fields = {"slug": ("title",)}
list_display = ('title', 'release_date', 'runtime',)
search_fields = ('title',)
inlines = [
DirectorInline,
ActorInline,
CompanyInline,
FilmLocationInline,
CinematographerInline,
EditorInline,
ProducerInline,
ScreenwriterInline,
ArtDirectorInline,
PersonInline,
FilmImageInline,
]
class FilmLocationAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("address",)}
class ActorAdmin(FkAutocompleteAdmin):
related_search_fields = {
'person': ('first_name', 'last_name',),
}
class PersonAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("first_name", "last_name",)}
list_display = ('first_name', 'last_name', 'slug',)
search_fields = ('first_name', 'last_name',)
class FilmImageAdmin(admin.ModelAdmin):
list_display = ['title', 'slug', 'film']
prepopulated_fields = {'slug': ('title',)}
admin.site.register(FilmImage, FilmImageAdmin)
admin.site.register(Film, FilmAdmin)
admin.site.register(Person, PersonAdmin)
admin.site.register(Actor, ActorAdmin)
admin.site.register(Director)
admin.site.register(Cinematographer)
admin.site.register(Composer)
admin.site.register(Editor)
admin.site.register(Producer)
admin.site.register(Screenwriter)
admin.site.register(ArtDirector)
admin.site.register(Company)
admin.site.register(FilmLocation, FilmLocationAdmin)
# admin.site.register(PersonCompanyRelationship)
# admin.site.register(CompanyFilmRelationship)
# admin.site.register(ActorFilmRelationship)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment