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

标签 django django-models django-admin

好的,我正在尝试做一些在我看来很简单的事情,但是我可能缺少一些SQL或Django管理知识。
假设我有一个简单的模型,例如

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

我希望管理站点中的“评论”字段带有一个加号,以将更多评论添加到同一模型实例中,以使模板迭代它们。

我知道我可以为评论创建一个m2m字段,它可以满足我的要求,但我希望可以在同一页面上填充这些多余的评论而不会弹出窗口(对于无助的用户,我想将其保留为WSIWYG尽可能的,因为这些文本字段将由tinyMCE提供支持),我想知道是否真的有必要为文本字段创建一个额外的模型

最佳答案

创建一个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,
    ]

该文档提供了一个几乎完全符合此情况的示例,除了多位作者而不是多篇评论:
  • http://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects
  • 关于django-创建一个模型,让您为同一字段插入多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5090047/

    相关文章:

    python - AttributeError - 模块 'django.http.request' 没有属性 'META'

    database - 在 django admin 中更改字段名称

    python - Django 时区设置的正确方法是什么

    mysql - 保存/更新模型时 Django "Lock wait timeout exceeded; try restarting transaction"

    python - Django DRY 带有外键的冗长名称?

    Python Django 网址无法正常工作?

    django - 无法重命名 “Django administration"

    python - 我如何将这些多重连接作为 Django 查询集进行?

    django - 如何从 django 管理站点删除更改密码链接?

    Django 管理 get_FOO_display