我有一个包含以下模型的项目
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的管理员根据已经输入的标签显示标签名称列表作为下拉菜单。当然,如果没有合适的标签,用户必须能够添加新的标签名称作为标签对象。我可以很容易地实现这一点没有内联,但 它,我无法做到。有任何想法吗?
答案 0 :(得分:0)
内联中的每一行代表“Tag”表的一条记录,或“Tag”类的对象。 输入此内联的新条目意味着您实际上是在一个“配方”下创建新标签。 “标签”表的“配方”列将填充配方表的主键。
我真的不明白为什么你需要内联。如果您需要将多个标签标记为一个配方,那么您可以使用ManyToManyFields,在这种情况下,您可以在下拉列表中选择多个标签。(此django管理员将采取,您只需要将配方类型更改为ManytoManyField)