ForeignKey Встроенное выпадающее меню в Django admin - PullRequest
0 голосов
/ 07 мая 2018

У меня есть проект со следующими моделями

class Recipe(models.Model):
    title = models.CharField("Title", max_length = 200, blank=False)
    content = RichTextUploadingField("Content")

class Tag(models.Model):
    name = models.CharField("Tag", max_length = 50)
    recipe = models.ForeignKey(Recipe)

и следующий admin.py

class TagInline (admin.StackedInline):
    model = Tag

class RecipePage(admin.ModelAdmin):
    list_display = ('title')
    list_display_links = ('title')
    fields = ('title', 'content')
    list_per_page = 25

    inlines = (TagInline)

Для каждого встроенного файла я бы хотел, чтобы администратор Django отображал список имен тегов в виде раскрывающегося меню на основе уже введенных тегов. Конечно, пользователи должны иметь возможность добавить новое имя тега в качестве объекта тега, если подходящий тег уже не существует. Я могу достичь этого довольно легко без inline, но с этим я не смогу. Есть идеи?

1 Ответ

0 голосов
/ 08 мая 2018

Каждая строка в inline представляет одну запись таблицы «Tag» или объект класса «Tag». При вводе новой записи в этот встроенный означает, что вы фактически создаете новые теги под одним «Рецептом». Столбец «Рецепт» таблицы «Тег» будет заполнен первичным ключом таблицы «Рецепт».

Я не совсем понял, зачем вам здесь нужно Если вам нужно несколько тегов, помеченных одним рецептом, вы можете использовать ManyToManyFields. В этом случае вы можете выбрать несколько тегов в раскрывающемся списке.

...