Показать ссылку на полную форму изменения объекта в django admin - PullRequest
2 голосов
/ 18 февраля 2011

Поскольку вложенные строки еще не поддерживаются, мне интересно, как отобразить ссылку на связанный объект в качестве альтернативы. На днях я столкнулся с вопросом со ссылкой на приложение, но я не могу найти его снова.

Вот что я собираюсь сделать:
У меня есть модель менеджера, которая содержит имя, адрес и т. Д.

У меня есть модель свойств, которая имеет встроенные свойства и связана с моделью менеджера.

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

Это что-то, что можно сделать?

1 Ответ

3 голосов
/ 18 февраля 2011

Конечно, вы можете просто переписать свой вид изменений.http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

Скопируйте шаблон из каталога шаблонов реального администратора и поместите его в любое удобное для вас место (поскольку вы можете указать на него с помощью change_form_template и добавить дополнительные элементы для отображения.

Я делаю это довольно часто.

class MyModelAdmin(admin.ModelAdmin):
    change_form_template = 'myapp/new_change_form.html'

    def change_view(self, request, object_id, extra_context=None):
        properties = Manager.objects.get(id=object_id).property_set.all()
        extra_context = { 'properties':properties }
        super(MyModelAdmin, self).change_view(request, object_id, extra_context)

Найдите место в шаблоне администратора, чтобы добавить свой собственный HTML.

<ul>
{% for property in properties %}
    <li>
        <a href="{% url admin:myapp_manager_change property.id %}">Edit {{ property }}</a>
    </li>
{% endfor %}
</ul>
...