Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 呈现一个用户';在基本模板中创建项目_Django_Django Models - Fatal编程技术网

Django 呈现一个用户';在基本模板中创建项目

Django 呈现一个用户';在基本模板中创建项目,django,django-models,Django,Django Models,我正在开发一个项目管理应用程序。在每个页面上(所有项目、新建项目、编辑项目等),我希望用户的项目出现在基本模板的侧栏中 在基本模板的侧栏中,我有以下用于呈现用户项目的代码: <h5>Your projects</h5> {% for project in user.projects.all %} {{ project }}<br/> {% endfor %} 通常这是在视图中完成的,我喜欢使用render\u to\u响应。如果您已经

我正在开发一个项目管理应用程序。在每个页面上(所有项目、新建项目、编辑项目等),我希望用户的项目出现在基本模板的侧栏中

在基本模板的侧栏中,我有以下用于呈现用户项目的代码:

  <h5>Your projects</h5>
  {% for project in user.projects.all %}
      {{ project }}<br/>
  {% endfor %}

通常这是在视图中完成的,我喜欢使用render\u to\u响应。如果您已经在使用多个视图,并且只想包含这些信息,则可以将这些信息添加到视图中。您可以在render_to_响应中根据需要传递任意多或任意少的数据

views.py 模板/project_list.html
这是Rails,对吗?字体可能在骗我…@holyredbeard啊,这就是我尴尬地走开的地方…@catherine:说实话,我只是试了一下,因为它感觉很符合逻辑。但是它可以工作(没有错误),但是它只呈现一个项目。你确定项目在各自的
用户中设置了当前用户,而不仅仅是用户添加的
?@catherine:啊,所以我至少走对了:)嗯,不,我没有名为UserProfile的模型,如果这是你的意思的话?谢谢你的回答。我对所有功能都使用视图,但这种情况不同,因为这只是网站的一部分,应该在所有页面上都可见。我已更新了答案。基本上,您只需将其添加到要传递的字典中,以呈现_to_响应,然后在顶级模板中调用查询集模板。
class Project(models.Model):
    name = models.CharField(max_length = 50)
    ... the rest of the fields ...
    added_by_user = models.ForeignKey(User)
    users = models.ManyToManyField(User, related_name='projects')

    def __unicode__(self):
        return self.name

    def owned_by_user(self, user):
        return self.added_by_user == user
from django.shortcuts import render_to_response

def some_view(request,user_id):
    # other queries
    project_listing = Project.objects.filter(user = user_id): 
    return render_to_response('sometemplate.html', {"someother_query":someother_query,"project_listing":project_listing,}
<h5>Your projects</h5>
<table>  
{% for project in project_listing %}
    <tr>
        <td>Project Name</td>
        <td>{{ project.name }}</td>
    </tr>
    .... repeat as necessary for each element 
{% endfor %}
</table> 
... other elements
{% include 'project_list.html' %}
... other elements