Mysql Django外键
我正在尝试跨2个模型/表生成报告。这是:Mysql Django外键,mysql,django,Mysql,Django,我正在尝试跨2个模型/表生成报告。这是: class Members(models.Model): username = models.CharField(max_length=30,null=True, unique=True) email = models.CharField(max_length=100,null=True, unique=True) name = models.CharField(
class Members(models.Model):
username = models.CharField(max_length=30,null=True, unique=True)
email = models.CharField(max_length=100,null=True, unique=True)
name = models.CharField(max_length=30,null=True)
phone = models.CharField(max_length=30,null=True)
及
这两个表的主键显然是自动递增ID
报告将如下所示:
Reported Phone | Reported Name | Report | Date Reported | Date Report Read
报告的每个人都将在成员表中。reporter ID是记录报告的成员的ID。报告的id是报告所在人员的id。我需要跨两个模型进行连接,以获取成员的姓名和电话号码。我从医生那里算不出来。我认为我应该将报告的id和报告者id都设置为Members表主键id字段的外键。我如何做到这一点?哪些代码将为特定报告者提交的所有条目提取报告
我是否需要用户报告\u id=models.ForeignKeyMembers,并对报告者\u id执行相同的操作。这似乎很奇怪,因为我没有指定该字段是外来字段。ORM应该使它变得更容易,而且通常是这样!。我可以通过加入SQL来做到这一点,但这让我感到困惑
我希望这个问题有意义
提前谢谢
丰富的
我如何做到这一点,什么代码将
为所有条目提取报告
由特定记者提交
是,是否报告了\u id=models.ForeignKeyMembers
该字段将是目标模型主键,它位于您的案例id中,因为您尚未指定主键
您需要为其中一个字段指定一个名称,以防止反向外键访问器的名称冲突
设置外键字段后,要获取通过该外键相关的所有对象,请使用相关的名称查询相关模型
例如,如果将模型设置为:
reporter = models.ForeignKey(Members, related_name="reports_by_me")
reported = models.ForeignKey(Members, related_name="reports_by_others")
您可以通过以下方式通过该外键访问所有相关的报表模型:
member_instance.reports_by_me.all()
member_instance.reports_by_others.all()
你肯定应该在任何你想表示模型之间一对多关系的地方都有ForeignKey字段。当然应该称ForeignKey为reported?它将使用reported_id作为其基础数据库字段。
member_instance.reports_by_me.all()
member_instance.reports_by_others.all()