Python 如何从url中获取id以在关系数据库中使用?

Python 如何从url中获取id以在关系数据库中使用?,python,django,Python,Django,对不起,如果标题没有意义,但我有点不确定这是我要找的 我有一个位置页面,列出了所有的位置,你可以点击该页面来显示该位置的更多信息,并将该位置的id放入url中。从位置页面,我希望能够向该位置添加多个评估。我在评估模型中添加了一个一对多关系字段,但这会打开一个下拉菜单。如果从位置页面单击评估链接,我希望它自动将评估添加到位置 url.py url(r'^accounts/loggedin/locations/all/$', 'assessments.views.locations'),

对不起,如果标题没有意义,但我有点不确定这是我要找的

我有一个位置页面,列出了所有的位置,你可以点击该页面来显示该位置的更多信息,并将该位置的id放入url中。从位置页面,我希望能够向该位置添加多个评估。我在评估模型中添加了一个一对多关系字段,但这会打开一个下拉菜单。如果从位置页面单击评估链接,我希望它自动将评估添加到位置

url.py

    url(r'^accounts/loggedin/locations/all/$', 'assessments.views.locations'),
    url(r'^locations/get/(?P<location_id>\d+)/$', 'assessments.views.location'),
    url(r'^locations/get/(?P<location_id>\d+)/assessments/all/$', 'assessments.views.assessments'),
    url(r'^locations/get/(?P<location_id>\d+)/assessment1/(?P<assessment1_id>\d+)/$', 'assessments.views.assessment1'),
views.py

def locations(request):
    return render_to_response('dashboard/locations.html', {'locations': Location.objects.all() })

def location(request, location_id=1):
    return render_to_response('dashboard/location.html', {'location': Location.objects.get(id=location_id) })

def assessments(request):
    return render_to_response('dashboard/assessments.html', {'assessments': Assessments.objects.all() })

def assessments1(request, assessment1_id=1):
    return render_to_response('dashboard/assessment1.html', {'assessment1': Assessment1.objects.get(id=assessment1_id) })
我希望这是有道理的


谢谢

您应该像这样重新构造您的模型:

class Location(model.Models):
    ...

class Assessment(model.Models):
    location = models.ForeignKey(Location)
    ...

class Category(model.Models):
    assessment = models.ForeignKey(Assessment)
    ...
url(r'^locations/$', 'views.locations'),
url(r'^locations/(?P<location_id>\d+)$', 'views.location'),
url(r'^locations/(?P<location_id>\d+)/assessments$', 'views.assessments'),
url(r'^locations/(?P<location_id>\d+)/assessments/(?P<assessment_id>\d+)$', 'views.assessment'),
url(r'^locations/(?P<location_id>\d+)/assessments/(?P<assessment_id>\d+)/categories$', 'views.categories'),
让你的路线更像这样:

class Location(model.Models):
    ...

class Assessment(model.Models):
    location = models.ForeignKey(Location)
    ...

class Category(model.Models):
    assessment = models.ForeignKey(Assessment)
    ...
url(r'^locations/$', 'views.locations'),
url(r'^locations/(?P<location_id>\d+)$', 'views.location'),
url(r'^locations/(?P<location_id>\d+)/assessments$', 'views.assessments'),
url(r'^locations/(?P<location_id>\d+)/assessments/(?P<assessment_id>\d+)$', 'views.assessment'),
url(r'^locations/(?P<location_id>\d+)/assessments/(?P<assessment_id>\d+)/categories$', 'views.categories'),

我不明白为什么您需要
评估
和一个单独的
评估1
模型…多个类别组成一个评估,同一类别可以有多个对一个评估。您应该在单独的字段中使用set实现评估类别。这样一来,所有类型的评估都在同一个模型中,它们只是在类别字段值上有所不同。我认为我完全错误地解释了这一点,解释得很糟糕。基本上,我想要的是一个简单的一对多关系表,自动分配评估所属的位置,让我困惑的是评估1-2-3实例变量和评估1类,为什么需要它们?评估1-2-3是一个大评估的类别。一个地点可以有许多评估,每个评估由不同的类别组成。这有意义吗。顺便说一句,谢谢。我们可以先删除Assessment1类吗?它真的很让人困惑:)你想要一个类似位置的结构吗。我只是希望我想说的其他话现在有意义