这是场景。实际的对象名称被调整,但这是主意。假设我有一个颜色模型
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获取行。这是最好的方式吗?
答案 0 :(得分:5)
你需要多对多的关系。 用户可以拥有许多喜欢的颜色,颜色可以属于许多用户。
https://docs.djangoproject.com/en/1.4/topics/db/examples/many_to_many/
color = models.ManyToManyField(User)