【问题标题】:Taking relationships into account in Django admin在 Django admin 中考虑关系
【发布时间】:2011-03-15 16:09:26
【问题描述】:

如果我在 Django 中有一个一对多的关系,例如 http://docs.djangoproject.com/en/dev/topics/db/models/#fields 的 Django 示例,一个音乐家可以拥有许多专辑,对于该音乐家来说是独一无二的。

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

class Album(models.Model):
    artist = models.ForeignKey(Musician)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()

我将如何实施以下内容:

在 Django 中,将“音乐家”作为一个部分进行管理。当您去管理音乐家时,您可以编辑音乐家,或者您可以转到专辑并仅为该音乐家管理专辑。当您制作新专辑时,系统会自动为您所在的音乐家创建它。 目前,您必须从庞大的列表中单独管理专辑并在编辑屏幕中选择音乐家。

【问题讨论】:

    标签: django django-models django-admin django-forms


    【解决方案1】:

    这对于 django 管理员来说太复杂了,所以要么您探索文档为您提供的自定义,要么您可能考虑根本不使用 django 管理员并将其编写为您的网络应用程序的一部分。

    查看http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adminsite-objects

    【讨论】:

    • 谢谢,我想可能是这样,你知道使用 Django 生成类似管理界面的任何好方法,但不是 Django 管理本身吗?
    • 如果您想创建另一个管理员,请查看上面的链接。但如果你只想要外观,你可以在 django 代码本身中找到样式和模板。
    【解决方案2】:

    Admin inlines 是一种解决方案 - http://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects - 这将允许您编辑与您正在查看的音乐家关联的任何专辑或添加新专辑。

    【讨论】:

    • 我已经研究过这种方法,但我不想在同一页面上编辑相册。我想像往常一样编辑专辑,只是以某种方式在艺术家的“下方”进行,并在创建和保存模型时将其传达给 django。
    • 我找到了这个,但不确定如何在这种情况下应用它? stackoverflow.com/questions/2933693/…
    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 2014-11-21
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2012-10-20
    相关资源
    最近更新 更多