Показать связанные строки в админе в форме модели с GenericForeignKey - PullRequest
0 голосов
/ 21 июля 2009

У меня есть простые модели с общими отношениями из этого примера в проекте Django :

class Image(models.Model):
    image = models.ImageField(upload_to="images")

class ImageLink(models.Model):
    image = models.ForeignKey(Image)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey("content_type", "object_id")

class Product(models.Model):
    name = models.CharField(max_length=100)

Очень просто показывать встроенные ImageLink объекты в форме администратора Product . Это продемонстрировано в Django документах .

Может кто-нибудь подсказать, как связаны ImageLinks , встроенные в административную форму Изображение модели?

ВАЖНОЕ ОБНОВЛЕНИЕ: Обновленный пример модели, поскольку, как сказал Дэниел, с предыдущим, нет необходимости показывать объекты встроенными.

Ответы [ 2 ]

1 голос
/ 22 июля 2009

Необходимо использовать generic.GenericTabularInline для отображения ImageLink объектов, встроенных в форму Product , как показано в Django docs .

Но если нам нужно показать связанные ImageLink inline в форме Image , это можно сделать с простым потомком класса admin.TabularInline .

Это очень простое решение. Я думаю, что глупо не догадываться об этом сразу.

0 голосов
/ 22 июля 2009

У вас нет сопутствующих товаров для показа в строке. Общие внешние ключи, как и обычные, являются «один ко многим», причем «одна» сторона отношения - это та, которая содержит поле внешнего ключа. Таким образом, в вашем случае у вас все еще есть только один продукт для каждого изображения, поэтому нет встроенного набора для показа.

...