在django中定义类关系

时间:2011-04-09 21:16:21

标签: python django

我是Django / Python的新手,请原谅我,如果我的问题很明显!

我正在尝试创建一个User类,每个用户都可以选择(一个或多个)体育学科作为他的爱好。

到目前为止,我在一个名为Hobbies的课程中定义了所有体育活动:

class Hobbies(models.Model):
    sports_name = models.IntegerField()

和用户类:

class Profile(models.Model):
    user = models.ForeignKey(User, unique=True)
    gender = models.CharField(max_length=1,blank=True)

我不知道如何继续,因为我之前没有使用django / Python。

我需要在我的用户类中创建一种数组,在那里我将存储某个用户“注册”的所有爱好。

3 个答案:

答案 0 :(得分:1)

在您的个人资料模型中添加多对多字段,这样您就可以在用户和兴趣爱好之间创建关系:

class Profile(models.Model):
  user = models.ForeignKey(User, unique=True)
  gender = models.CharField(max_length=1, blank=True)
  hobbies = models.ManyToManyField(Hobbies)

然后,您可以通过执行相关查找来获取用户爱好列表:

user = Profile.objects.get(pk=1)
hobbies = user.hobbies.all()

更多信息:http://docs.djangoproject.com/en/dev/ref/models/fields/#manytomanyfield

答案 1 :(得分:0)

问题表明您根本没有任何关系数据库的经验。由于Django模型(几乎)直接映射到底层数据库关系,我建议潜入一些数据库(框架和语言无关)教程//书。

为此,请检查this stackoverflow question。然后选择一个RDBMS(PostgreSQL很好,开源,免费)并稍微试验一下,然后回到Django。

答案 2 :(得分:0)

听起来像是对我的M2M关系。以下是如何执行此操作: http://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relationships