如何实现Django多选外键

时间:2013-10-16 23:59:54

标签: python database django model foreign-keys

这是场景。实际的对象名称被调整,但这是主意。假设我有一个颜色模型

class Color(models.Model):
    name = models.CharField(max_length=20)

我也有一个用户模型

class User(models.Model):

我想要做的是让用户选择多种颜色作为他们的最爱。有没有办法在单用户模型中正确存储多种颜色?

我最好的想法是拥有一个如下所示的附加模型:

class UserMCColor(models.Model):
    user = models.ForeignKey('User')
    color = models.ForeignKey('color')

为每个喜欢的颜色添加一个条目到该表,然后根据用户ID获取行。这是最好的方式吗?

1 个答案:

答案 0 :(得分:5)

你需要多对多的关系。 用户可以拥有许多喜欢的颜色,颜色可以属于许多用户。

https://docs.djangoproject.com/en/1.4/topics/db/examples/many_to_many/

color = models.ManyToManyField(User)