好的,我先告诉你一个概述。我有这个网站,其中有一个表格部分。访问该部分时,您可以查看或启动新项目。每个项目有3-5种不同的形式。
我的问题是我不希望观众必须浏览所有3-5页才能看到他们需要的相关信息。相反,我想给每个项目一个主页,其中输入表单的所有基本数据都显示为不可编辑的数据。我希望这是有道理的。
所以我需要找到一种方法来访问每个项目的不同表单中的所有数据,并将这些数据提供给我将称之为“Main”的新页面。每个项目都有一个单独的主页面。
我对如何做到这一点几乎一无所知,所以任何帮助都会受到赞赏。
由于
答案 0 :(得分:0)
您可以尝试this。之后,您可以:
django-admin
如果你已经看过这一切,那么:
首先,您应该为主页面创建一个视图。因此,如果您有应用my_app
,my_app/views.py
应该是:
def main_page_view(request, project_name):
# Your code here
pass
然后,要使用此功能,您需要修改urls.py
并添加以下内容:
(r'^projects/(?:<project_name>[a-zA-Z0-9]+)', 'my_app.views.main_page_view'),
此外,您需要通过子类化models.py
django.models.Model
中创建的模型
编辑:重新阅读您的问题,我想您需要this
答案 1 :(得分:0)
可以通过上下文将数据从视图传递到模板。
所以说你创建一个摘要视图......
def summary(request, *args, **kwargs):
在该视图中,您可以使用模型api查询数据库,并将该查询的结果传递到模板中进行渲染。我不确定你的模特是什么样的,但是你说你有一个拥有标题和所有者的模型(作为用户的ForeignKey)......
class Project(models.Model):
title = models.CharField(max_length=250)
user = models.ForeignKey(User)
你的模型显然会有所不同。在您的视图中,您可以查询属于当前用户的所有模型...
def summary(request, *args, **kwargs):
projects = Project.objects.filter(user=request.user)
收集完成后,您可以将查询传递给模板渲染系统......
def summary(request, *args, **kwargs):
projects = Project.objects.filter(user=request.user)
render_to_response('project_summary.html', {'projects': projects }, ... )
将查询传递给模板时,您已将其命名为projects
。在模板中,您可以通过此名称访问它...
<body>
<table>
{% for project in projects %}
<tr><td>{{ project.title }}</td></tr>
{% endfor %}
</table>
</body>
(另请注意如何从模板中访问模型的属性。)