如何在models中指定数据.ManyToManyField(Foo,Bar)

时间:2011-03-13 17:27:03

标签: python database django

我正在开发一个应用程序,我希望将用户角色输入到数据库中的表中。

class Role(models.Model):
 name = models.CharField(max_length = 40)
 details = models.TextField()

class Foo(models.Model):
 name = models.CharField(max_length = 40)
 details = models.TextField()

class Bar(models.Model):
 name = models.CharField(max_length = 40)
 detauls = models.TextField()
 foos = models.ManyToMany(Foo,related_name="foo_binding_and_roles")

我希望表foo_binding_and_roles的模式类似于:

{|id|Foo_id|Bar_id|Role_id|}

我仍然在摸不着头脑,想知道是否有可能。我知道如果我写一个自定义管理器我可以把它拉下来,但我想避免这种情况。

这个方案背后的想法是,当bar遇到foo并且foo符合bar时,在关系的基础上为用户分配权限。

2 个答案:

答案 0 :(得分:1)

我不明白你到底想要做什么,但是读这一行:{|id|Foo_id|Bar_id|Role_id|}

让我觉得您可以使用这些字段定义模型,或者使用该额外字段设置through model

答案 1 :(得分:0)

为了简化这一过程,您可以更清楚地思考它,不要使用多对多关联,并使用多对一关联构建整个方案。如果我理解你的话,我认为你正在寻找的是使用三向关联课程。