定义一个django模型关系

时间:2009-07-01 20:18:02

标签: django django-models django-admin

我正在编写一个具有这种递归关系的应用程序(伪代码):

class atist:
      name = charfield 
      (...)

class press:
      pub = foreingkey(artist)

class works:
      work = foreingkey(artist)

class img:
      im = foreingkey(works)

我在想,如果这是解决这个问题的更好方法,或者我会使用其他类似的关系,比如很多次?而对于另一方面我如何在管理网站注册这个应用程序,只有一个页面的艺术家与作品和按作为艺术家的内嵌对象?

感谢

1 个答案:

答案 0 :(得分:5)

如果一个作品,img或者按下只会与一位艺术家有关,那么你不需要多对多,所以你在伪代码中设置它的方式就足够了。

您可以查看管理员的内联froms。您可以指定诸如每种类型显示的内联项目数等等。

class MyModelInline(admin.StackedInline):
      model = MyModel
      # whatever other options you need for your inline

class MyModelAdmin(admin.ModelAdmin):
      inlines = [MyModelInline,]

这样的事情对你有用。就像AlbertoPL所说的那样,文档中有更多信息可以提供您需要的所有不同选项和功能。