фильтровать результаты, возвращаемые django-reversion

Только начал использовать django-reversion с приложением "Опросы" из учебник по django. Чтобы это заработало, все, что я сделал, это создал mysite/polls/admin.py со следующим кодом:

from django.contrib import admin
from polls.models import Poll
import reversion
#admin.site.register(Poll)
class PollAdmin(reversion.VersionAdmin):
    pass
admin.site.register(Poll, PollAdmin)

Другими словами, я сделал только интеграцию администратора. В модель опроса я добавил поле под названием approved.

one_object = Poll.objects.all()[1]
version_list = reversion.get_unique_for_object(one_object)

version_list выше содержит все версии one_object. Я только хочу получить все версии, которые имеют approved==True. Затем я хочу, чтобы результаты отображались так, чтобы отображались только утвержденные опросы. Как я могу отфильтровать это?


person Trewq    schedule 03.09.2012    source источник


Ответы (1)


Каждый объект версии имеет атрибут field_dict, содержащий значения полей объекта в этой версии. Таким образом, вы можете отфильтровать список следующим образом:

filtered_versions = [v for v in version_list if v.field_dict["approved"] ==  True]
person Michael Dunn    schedule 29.12.2012