administrador.py
class MovieItemInline(AjaxSelectAdminTabularInline): model = MovieItem ordering = ['-date'] class MovielistAdmin(ModelAdminBase, AjaxSelectAdmin): inlines = (MovieItemInline, ) admin.site.register(Movielist, MovielistAdmin)modelos.py
class MovieItem(Model): title = CharField(default="") view_number = IntegerField(default=0) price = IntegerField(default=0) date = IntegerField(default=0) class Movielist(Model): title = CharField(default="") display_order = CharField(default="date")MovieItemInline es el atributo en línea de MovielistAdmin, quiero ordenar MovieItem, por ejemplo, si Movielist.display_order es igual a "fecha", luego ordene MovieItem por MovieItem.date. si Movielist.display_order es igual a "precio", ordene MovieItem por MovieItem.price. si Movielist.display_order es igual a "view_number", ordene MovieItem por MovieItem.view_number. ¿Qué tengo que hacer? ¿Django es compatible?
Puede anular el método get_ordering dentro de la clase MovieItemInline .
from django.urls import resolve def get_ordering(self, request): # get Movielist object instance from request object_id = resolve(request.path).args[0] # retrieve Movielist object movie_list = MovieList.objects.get(id=object_id) # modify ordering based on movie_list display_order value if movie_list.display_order == 'date': return ['-date'] elif movie_list.display_order == 'price': return ['-price'] elif movie_list.display_order == 'view_number': return ['-view_number'] # fallback value if non of the above match return ['-title']