假设我有例如Object1
列id
,id_users
,其中id_users
是来自id
的{{1}}的外键表auth_user
包含列Object2
,id
,id_object1
,其中sth
是来自id_object1
的{{1}}的外键} table。id
的Object1和Object2在mySQL数据库中自动递增。
我希望有这样的网址Object1
,我希望从ID
表中获取用户的/users/{id}/object2/?sth=123
为Object2
的对象{{1 } table(在这种情况下等于{id}
),id
在auth_user
表中等于2
在适当的字段中。
我们假设这是我的模型:
sth
我有一个非常类似的问题,在这篇文章中解决了 - Django - How can I create POST with foreign key defined in URL?但是在这种情况下我没有123
表中我想要GET对象。我不知道解决这个问题的最佳方法是什么。提前谢谢。
答案 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'),
]
希望这是你想要的......