Как отфильтровать последние измененные законы в админке django?

Ниже приведено описание моделей:

<

Я хочу получать последние измененные законы в админке сайта django. Поэтому я создал прокси модель Law.

а в админ-файле закона у меня вот это:

@admin.register(LatestAmendedLaws)
class LatestAmendedLawsAdmin(admin.ModelAdmin):
    list_display = ("id", "rs_number", "created")

    def get_queryset(self, request):
        latest_translation_datetime = Translation.objects.latest("created").created
        return (
            super()
            .get_queryset(request)
            .filter(created__gte=latest_translation_datetime)
        )

этот скрипт не возвращает правильные последние измененные законы. потому что он фильтрует на основе созданного поля закона. но он должен быть основан на последней созданной/обновленной дате переводов, которые связаны с законом.

Возможно, вы можете попробовать следующим образом:

django.db.models import SubQuery, OuterRef

query = Translation.objects.filter(law_version__law_id=OuterRef('pk')).order_by('created')

LatestAmendedLaws.objects.annotate(max_date=Sunquery(query.values('created')[:1])).filter(versions__translations__created=F('max_date'))

Здесь я аннотирую максимальное время создания Translation и аннотирую его набором запросов LatestAmendedLaws с помощью Subquery. Затем я запустил фильтр, основанный на аннотированных полях

Вернуться на верх