2011-03-15 83 views
1

如果我在http://docs.djangoproject.com/en/dev/topics/db/models/#fields在Django一到多关系,像Django的例子,音乐家可以有很多专辑,独有的音乐家。考虑关系到在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中,有“音乐家”作为管理的部分。当你去管理音乐家时,你可以编辑音乐家,或者你可以进入专辑并管理专辑只为那个音乐家。当您制作新专辑时,系统会自动为您所在的音乐人创建。 此刻,你将不得不从一个巨大的名单分别管理相册,并选择在编辑画面的音乐家。

回答

0

这对于django管理员来说太复杂了,因此无论是探索文档为您提供的定制,还是您可能都会考虑不使用django管理员,只是将它作为Web应用程序的一部分编写。

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

+0

谢谢,我认为可能是这种情况,你知道使用Django生成类似的管理界面的好方法,但不知道Django管理员本身? – 2011-03-15 19:35:40

+0

如果您想创建另一个管理员,请查看上面的链接。但是如果你只是想要外观和感觉,你可以在django代码本身找到样式和模板。 – gladysbixly 2011-03-17 08:19:35

0

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

+0

我已经看过这个方法,但我dont't要在同一个页面上编辑的相册。我想像正常一样编辑专辑,只是以某种方式在'艺术家'下面进行创作,并在创建和保存模型时将其传达给django。 – 2011-03-15 16:50:48

+0

我发现了这个,但不知道如何在这个实例中应用它? http://stackoverflow.com/questions/2933693/display-one-to-many-relationship-for-a-model-in-django-admin-list-mode – 2011-03-15 17:22:56