Я хотел бы иметь собственный фрагмент кода HTML-формы, который позволяет пользователю выбрать «обучение», которое затем используется в качестве параметра запроса для фильтра модели django-admin для «участников».
Я успешно создал фильтр для modeladmin:
class ParticipantAdmin(RestrictedModelAdmin):
list_filter = ('training__name',)
Вероятно, стоит отметить, что RestrictedModleAdmin является подклассом ModelAdmin, который обеспечивает безопасность на уровне строк для модели;вошедшие в систему пользователи должны видеть только те строки, которые им принадлежат.
Таким образом, URL-адреса, использующие этот фильтр, выглядят примерно так при использовании этого интерфейса администратора:
/admin/core/participant/?training__name=Menno+Ropes
Все это прекрасно работает.Теперь я думаю, что смогу создать очень простую форму, которая позволит выбрать действительный «тренинг» и отправить его в / admin / core / member / в виде GET.
<form method="GET" action="/admin/core/participant/">{% csrf_token %}
<ol>
<li>Select your training:
<select name='training__name'>
<option value=''>—</option>
{% for training in trainings %}
<option value='{{ training.name }}'>{{ training }}</option>
{% endfor %}
</select>
</li>
<li>See participants for that training.
<input type='submit' name='submit' value='Submit' /></li>
</ol>
</form>
Этот последний бит не делает 'не вижу, чтобы работать.Некоторое волшебное foo во внутренностях django, кажется, всегда искажает представление:
/admin/core/participant/?e=1
Это явно не выбирает подходящее значение фильтра и, таким образом, показывает нефильтрованный список «участников».
Что происходит?Что я могу сделать, чтобы позволить моему параметру GET проходить через модель администратора?
Заранее спасибо.
PS) Django 1.3 +