Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Django外键_Mysql_Django - Fatal编程技术网

Mysql Django外键

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(

我正在尝试跨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(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()