django - 创建一个模型,允许您为同一个字段插入多个值?

时间:2011-02-23 11:07:39

标签: django django-models django-admin

好的我正在尝试做一些在我脑海中应该非常简单的事情,但我可能缺少一些SQL或django管理员知识来实现​​它。 说我有一个简单的模型,如

class Book(models.Model):
    title = models.CharField(max_length = 50)
    review = models.TextField()

我希望管理网站中的“审核”字段有一个加号,可以为同一模型实例添加更多评论,以便模板迭代它们。

我知道我可以为评论创建一个m2m字段,它会给我这个,但我宁愿这些额外的评论可以在没有弹出窗口的同一页面填充(对于我想保留的无助用户)它作为WSIWYG尽可能,因为那些文本字段将是tinyMCE驱动的),我想知道是否真的有必要为文本字段创建一个额外的模型

1 个答案:

答案 0 :(得分:11)

创建一个Review模型,其中包含评论文字,并ForeignKeyBook ...

class Book(models.Model):
   title = models.CharField()

class Review(models.Model):
   book = models.ForeignKey(Book, related_name='reviews')
   review = models.TextField()

...然后注册相应类型的InlineModelAdmin以编辑管理员手册页面上的所有相关评论。我建议在这种情况下使用StackedInline

class ReviewInline(admin.StackedInline):
    model = Review

class BookAdmin(admin.ModelAdmin):
    inlines = [
        ReviewInline,
    ]

文档中有一个几乎就是这种情况的例子,除了多个作者而不是多个评论: