2010-04-15 51 views
0

好吧,让我先给你一个概述。我有这个网站,里面有一个表格部分。当您访问该部分时,您可以查看或启动一个新项目。每个项目有3-5种不同的形式。Django问题 - 尝试访问输入到表单中的数据并通过其他页面输入它

我的问题是,我不希望观众必须通过所有3-5页来查看他们所需的相关信息。相反,我想为每个项目提供一个主页面,其中输入到表单中的所有基本数据都显示为不可编辑的数据。我希望这是有道理的。

所以我需要找到一种方法来访问每个项目的不同形式的所有数据,并将这些数据提供给我将称为“Main”的新页面。每个项目都有一个独立的主页面。

我几乎不知道该如何做,所以任何帮助都将不胜感激。

感谢

+2

是各自形成它自己的模型? – AlG 2010-04-15 20:13:58

回答

0

你可以尝试this。在这之后,你可以:

如果你已经看到了这一切,然后:

首先,你应该为你的主页视图。所以,如果你有一个应用程序my_appmy_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

+0

谢谢你的回答。我已经为我拥有的表格和功能制作了不同的表格/模型/视图。我的问题是我希望输入的数据显示在不同的页面上。因此,如果您填写表单1,我希望该数据显示在该项目的主页上作为不可编辑的数据。 换句话说,我需要以某种方式访问​​数据库并获取每个项目的信息并通过主页面输出。我只是不知道如何。 – 2010-04-15 20:29:38

+0

提交表单,获取数据,并重定向到下一个表单... – aviraldg 2010-04-15 22:34:03

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> 

(还要注意如何可以在模板中访问模型的属性也是如此。)

+0

谢谢。我会尝试你的建议。我很想知道,因为每个表单都会针对不同的项目进行多次实地展示,只会显示该特定项目的数据,还是会一次显示所有项目的数据?我正在寻找的是只有该特定项目的数据才能显示出来。 – 2010-04-15 20:53:17

+0

您可以通过调整查询来控制显示哪些数据。如果您还没有阅读完Django书籍,我强烈建议您这样做。它只需要大约12-14个小时才能完成,这非常值得投资。 – 2010-04-15 22:20:35