2011-11-14 6 views
1

У меня есть поле Foo с ForeignKey, которое указывает на User. Мне нужно создать фильтр в admin, который отображает только пользователя, у которого есть хотя бы один Foo. Это было бы легко с версией разработки Django, но я застрял с 1.3.Django admin - Создайте сложный фильтр на модели пользователя

Я видел here как добавить собственный фильтр, используя недокументированный класс FilterSpec. Моя проблема в том, что для этого требуется изменить модель User. Я мог бы наследовать от User, но я уже настроил установку, где дополнительные данные помещаются в модель Profile с однотоновой ссылкой на User.

Есть ли менее назойливый способ добавить пользовательский фильтр к модели User?

+1

Ждите Django 1.4 (или работайте на багажнике, но это, как правило, не очень хорошая идея), который будет иметь настраиваемые фильтры specs. В противном случае вам не повезло. –

+0

Мы запускаем django с багажника, так как у них есть i18N_urls, и все в порядке. –

ответ

1

Фактически вы можете использовать отношение внешних ключей назад в запросе ORM.

User.objects.filter(foo__isnull=False) 
+1

Просто понял, что это ДЕЙСТВИТЕЛЬНО старый. Надеюсь, это кому-то поможет! – pyrospade

+0

Спасибо - это действительно довольно старый. :-) В любом случае проблема заключалась не в том, чтобы отфильтровать эти пользователи вручную, а вместо этого, чтобы это было доступно как фильтр в администраторе Django. – Andrea

+1

Это похоже на стадион - http://stackoverflow.com/questions/991926/custom-filter-in-django-admin-on-django-1-3-or-below – pyrospade

Смежные вопросы