Приложение администратора Django для главной страницы - PullRequest
5 голосов
/ 02 марта 2011

Рассмотрим эту упрощенную модель в Django:

class Item(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateTimeField()

class ItemDetail(models.Model):
    item = models.ForeignKey(Item)
    name = models.CharField(max_length=200)
    value = models.CharField(max_length=200)
    display_order = models.IntegerField()

Есть ли способ использовать admin для редактирования элемента с его деталями на той же странице с помощью формы, которая выглядит примерно так:

title:    <       >
pub_date: <       >
details:
+-----------------+----------------------+-------------------------+
|       name      |        value         |      diplay order       |
+-----------------+----------------------+-------------------------+
|<               >|<                    >|<                       >|
|<               >|<                    >|<                       >|
|<               >|<                    >|<                       >|
|<               >|<                    >|<                       >|
|<               >|<                    >|<                       >|
+-----------------+----------------------+-------------------------+

Где < > будет заполнителем для типов ввода для ввода данных.

Итак, мой вопрос: могу ли я использовать admin для редактирования отношения foreign key с точки зрения родителей?Если нет способа редактировать данные с помощью администратора Django, было бы хорошей идеей попытаться расширить / настроить администратор, чтобы сделать это?Любые инструкции о том, как это сделать?

Спасибо!

1 Ответ

10 голосов
/ 02 марта 2011

На самом деле это единственное направление, с которым django хорошо справляется с отношениями - наоборот, сложнее (непосредственное редактирование связанного родителя от ребенка).

Чтобы получить нужный формат, загляните во вкладки ModelAdmin:
http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin

class ItemDetailInline(admin.TabularInline):
    model = ItemDetail

class ItemAdmin(admin.ModelAdmin):
    inlines = [
        ItemDetailInline,
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...