在Django admin中考虑关系

时间:2011-03-15 16:09:27

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

如果我在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中,将“音乐家”作为一个管理部分。当您去管理音乐家时,您可以编辑音乐家,或者您可以继续专辑并仅为该音乐家管理专辑。制作新专辑时,系统会自动为您所在的音乐家创建该专辑。 目前,您必须从巨大的列表中单独管理相册,并在编辑屏幕中选择音乐家。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这对于django管理员来说太复杂了,所以要么你要探索文档为你提供的自定义,要么你可以考虑不使用django管理员,只是把它写成你的web应用程序的一部分。 / p>

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