【发布时间】:2017-05-28 12:03:25
【问题描述】:
假设我有例如表Object1 与列id,id_users 其中id_users 是id 的外键来自auth_user 表和表Object2 与列id ,id_object1,sth,其中id_object1是Object1表中id的外键。Object1和Object2的ID在mySQL数据库中自动递增。
我想拥有例如这样的 URL /users/{id}/object2/?sth=123 并且我想从 Object2 表中获取对象,其中 {id} 是来自 auth_user 表的用户的 id(在这种情况下等于 @ 987654341@) 和 sth 等于 123 在相应字段中的 Object2 表中。
假设这是我的模型:
class Object1(models.Model):
id_users = models.PositiveIntegerField(blank=True)
class Object2(models.Model):
id_object1 = models.FloatField()
sth = models.FloatField()
我有非常相似的问题,在这篇文章中解决了 - Django - How can I create POST with foreign key defined in URL? 但在这种情况下,我想从中获取对象的表中没有 foreign key。我不知道解决这个问题的最佳方法是什么。提前致谢。
【问题讨论】:
-
字段之间是否有任何关系,比如
object1__id_users = 2和object2__id_object1 = 2之类的? -
如果您的意思是
id_object1是来自Object1的id_users的外键,那么没有。id_object1是来自Object1表的id的外键(未在模型中定义,因为它在数据库中自动递增(也许这是错误的?))。 -
那么应该是这样的。
id_object1 = models.ForeignKey(Object1)对吗? -
如果
id_object1 = models.ForeignKey(Object1)是等价的,其中Object2模型中的id_object1是id的外键,来自Object1表,那么我的答案是肯定的。我想我将不得不改变我的模型。此刻我的模型还好吗?如果是,如何为我在主帖中描述的任务创建视图? -
你想要的是这个 -> "get object from Object2 table where {id} is the id of the user from auth_user table" 但是用户和object2 表,对吧?
标签: mysql django python-3.x django-models django-rest-framework