【发布时间】:2017-08-21 15:58:23
【问题描述】:
我是 Django 的初学者,在 Python 上有点高级。我对 Django 感到非常惊讶,而且我已经玩了大约一个星期了。我查看了很多教程和 stackoverflow 问题/答案,发现了很多。
但是,当谈到 OneToMany / Foreign Key 关系以及访问它的方式时,我仍然有点迷茫。我查看了官方文档的“Library/Book”示例,但仍在试图弄清楚如何解决以下问题。
[解释]
- 我有用户(已经创建)
- 对于 Django 构建的用户,我添加了一个配置文件 (OneToOneField)
- 配置文件仅包含每个用户的一项:标题(外键)
- 标题又来自现有的可用标题列表
- 最后,我有一个机会(一类),它有一个用户链接(外键)
在models.py中
class ProfileStatus(models.Model):
""" table of available titles for users """
status = models.CharField(max_length=100)
def __str__(self):
return self.status
class Profile(models.Model):
""" add a title to an existing user """
user = models.OneToOneField(User, on_delete=models.CASCADE)
title = models.ForeignKey(ProfileStatus, on_delete=models.CASCADE)
class OpportunityStatus(models.Model):
""" status for an opportunity """
status = models.CharField(max_length=100)
def __str__(self):
return self.status
class Opportunity(models.Model):
""" An opportunity """
name = models.CharField(max_length=100, default='')
director = models.ForeignKey(User, on_delete=models.CASCADE)
status = models.ForeignKey(OpportunityStatus, on_delete=models.CASCADE)
def __str__(self):
return self.name
[我在寻找什么]
我想知道你会怎么做:
- 对于标题为“导演”的用户
- 获取作为主管链接的机会列表
- 然后将此列表过滤到状态为“活动”的机会,然后传递给视图(我可以管理)
【问题讨论】:
标签: python django django-models foreign-keys