Django - 如何从表格中获取值,我想要GET对象的表格中没有外键?

时间:2017-05-28 12:03:25

标签: mysql django python-3.x django-models django-rest-framework

假设我有例如Object1idid_users,其中id_users是来自id的{​​{1}}的外键表auth_user包含列Object2idid_object1,其中sth是来自id_object1的{​​{1}}的外键} table。id的Object1和Object2在mySQL数据库中自动递增。

我希望有这样的网址Object1,我希望从ID表中获取用户的/users/{id}/object2/?sth=123Object2的对象{{1 } table(在这种情况下等于{id}),idauth_user表中等于2在适当的字段中。

我们假设这是我的模型:

sth

我有一个非常类似的问题,在这篇文章中解决了 - Django - How can I create POST with foreign key defined in URL?但是在这种情况下我没有123表中我想要GET对象。我不知道解决这个问题的最佳方法是什么。提前谢谢。

1 个答案:

答案 0 :(得分:0)

根据我对你的困境的理解,我认为你的模型应该有点像这样,

<强> models.py

class Object1(models.Model):
    id_users = models.ForeignKey(User)

class Object2(models.Model):
    id_object1 = models.ForeignKey(Object1)
    sth = models.FloatField()

然后,你问网址应该看起来像这样,     /users/{id}/object2/?sth=123

然后你的观点应该有点像这样,

<强> views.py

def your_view(request, user_id):
    sth = request.GET.get('sth', '')
    sth_instance = Object2.objects.get(sth=sth, object1__id_users=request.user)
    #do whatever you want to do...

<强> urls.py

urlpatterns = [
    url(r'^users/(?P<user_id>[\d]*)/object2/$', your_view, name='view_name'),
    ]

希望这是你想要的......