在Django中订购关于父模型的子模型

时间:2018-01-05 14:09:02

标签: python django django-models

我的Problem中定义了Solutionmodels.py模型。 Solution具有Problem模型的外键。也就是说,问题可以有很多解决方案。

我想创建像www.example.com/problem/problem_id/solution/solution_number/这样的网址,其中problem_id描述问题模型的主键,solution_number描述针对特定问题发布解决方案的顺序。换句话说,如果解决方案是针对给定问题的第一个解决方案,则其顺序应为1,对同一问题的第二解决方案将获得顺序2.

这样我就可以访问特定问题的解决方案,例如Solution.objects.get(problem=problem, order=order)

1 个答案:

答案 0 :(得分:0)

root urls.py

urlpatterns = [
    url(r'^problem/', include('your.apps.problem.urls')
]

problem.urls.py

from .views import solution

urlpatterns = [
    url(r'^(?P<prob_id>\d+)/solution/(?P<sol_id>\d+)/$', solution)
]

views.py

def solution(request, prob_id, sol_id):
    sol = Solution.objects.get(problem_id=prob_id, pk=sol_id)

不要在Foreignkey字段中按对象查询,最好使用_id,在这种情况下不涉及Problem表。

你不需要order。 ID总是按顺序排列。