Python Django将外键从ListView传递到Detailview
关于Django的观点,我有些不太了解。我的站点将有一个表,表上有不同的作业或负载。这称为负载板。这引用了一个名为Loadboard_table的数据库表。Loadboard_表包含数据库中Company_表的外键。此数据库表包含分配此作业/负载的公司以及该公司的其他信息 目标是让用户点击装载板上的任何一行,这会将用户带到公司的“详细信息”页面。我已经在下面展示了代码的一个浓缩部分,以避免对这个问题产生膨胀 表索引上的行项目Python Django将外键从ListView传递到Detailview,python,django-models,sqlite,django-templates,django-views,Python,Django Models,Sqlite,Django Templates,Django Views,关于Django的观点,我有些不太了解。我的站点将有一个表,表上有不同的作业或负载。这称为负载板。这引用了一个名为Loadboard_table的数据库表。Loadboard_表包含数据库中Company_表的外键。此数据库表包含分配此作业/负载的公司以及该公司的其他信息 目标是让用户点击装载板上的任何一行,这会将用户带到公司的“详细信息”页面。我已经在下面展示了代码的一个浓缩部分,以避免对这个问题产生膨胀 表索引上的行项目 <!-- this is where I grab my Com
<!-- this is where I grab my Company table foreign key by clicking on one of the loadboard items -->
<td>
<a href="{% url 'loadboard:detail' item.CompanyName_id %}"> {{item.CompanyName}}</a>
</td>
detail.html
<!-- I want this detail page to show the Company that the loadboard's foreign key references -->
<head>
<title>{% block title %}{{Company_table.CompanyName}}'s loadboard{% endblock %}</title>
</head>
{%block title%}{{Company_table.CompanyName}}的装载板{%endblock%}
非常感谢你的帮助 我找到了一种不使用DetailView类实现目标的方法。我只是做了一个函数来处理HTTP请求并从url中获取CompanyId。我认为DetailsView类用于更具体的情况 当用户单击时:
<td>
<a href="{% url 'loadboard:detail' item.CompanyName_id %}">{{item.CompanyName}}</a>
</td>
使用views.py上的函数:
def ViewCompanyDetails(request, CompanyId):
CompanyObject = Company_table.objects.get(id = CompanyId)
context = {'Company': CompanyObject}
return render(request, 'loadboard/detail.html', context)
这实现了我的目标,即尝试从用户单击表的位置传递公司id,并将其一直传递到视图页面,然后获取HTML页面
对于泛型模型中的DetailsView类,我可能是错的,因为它对主键太特殊了,但是有人可以纠正我的错误
<td>
<a href="{% url 'loadboard:detail' item.CompanyName_id %}">{{item.CompanyName}}</a>
</td>
url(r'^([0-9]+)/$', views.ViewCompanyDetails, name='detail')
def ViewCompanyDetails(request, CompanyId):
CompanyObject = Company_table.objects.get(id = CompanyId)
context = {'Company': CompanyObject}
return render(request, 'loadboard/detail.html', context)