Python Django 1.6获取fk对象

Python Django 1.6获取fk对象,python,django,join,models,mixing,Python,Django,Join,Models,Mixing,我对这种型号有兴趣 class Project(models.Model): name = models.CharField(max_length=20) description = models.CharField(max_length=200, null=True, blank=True) creation_date = models.DateTimeField(auto_now_add=True, auto_now=False) group_owner =

我对这种型号有兴趣

class Project(models.Model):
    name = models.CharField(max_length=20)
    description = models.CharField(max_length=200, null=True, blank=True)
    creation_date = models.DateTimeField(auto_now_add=True, auto_now=False)
    group_owner = models.ForeignKey(User)

    def __str__(self, y):
        return smart_str(self.name)

class Note(models.Model):
    title = models.CharField(max_length=50, null=True, blank=True)
    content = models.CharField(max_length=1000)
    creation_date = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated_date = models.DateTimeField(auto_now_add=False, auto_now=True)
    projectId = models.ForeignKey(Project, on_delete=models.CASCADE)
    userid = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return smart_str(self.title)
我想在一个视图中加入他们,当有人进入这个url时会显示。 显然,ID将依赖于Project.ID,并且它必须获取与之相关的所有注释

同时,我的views.py看起来是这样的

class ProjectDetail(generic.DetailView):
    model = Project
    template_name = 'scribere/project/detail.html'

    def get_queryset(self):
        return Project.objects.filter(group_owner__exact=self.request.user.id)

class ProjectNoteList(generic.ListView):
    context_object_name = 'project_note_list'
    template_name = 'scribere/note/index.html'

    def get_queryset(self):
        return Note.objects.filter(userid__exact=self.request.user.id, projectId__exact=self.kwargs['pk'])
模板呢

{% extends "base/adminsNavBar.html" %}
{% load i18n %}

{% block head_title %}{% trans 'Projects Details' %}{% endblock %}

{% block breadcrumbs %}
<div class="breadcrumb"><p>{% trans 'Project Details' %}</p></div>
{% endblock %}

{% block content %}
<div class='row'>
    <a href="{% url 'scribere:project_list' %}" class="btn btn btn-primary pull-right" role="button">{% trans 'Back' %}</a>
    <a href="{% url 'scribere:project_note_list' project.id %}" class="btn btn btn-primary pull-right" role="button">{% trans 'Notes' %}</a>
</div>
<div>
{{project.name}}
</div>
<div class = "note-list">
     <ul>
        {% for note in project_note_list %}
            <li>
                <a href= "#"> {{note}} </a>
            </li>
        {% endfor %}
    </ul>
</div>
{% endblock %}
{%extends“base/adminsNavBar.html”%}
{%load i18n%}
{%block head_title%}{%trans'项目详细信息%}{%endblock%}
{%block breadcrumbs%}
{%trans'项目详细信息“%”

{%endblock%} {%block content%} {{project.name}
    {项目中注释的%u注释列表%}
  • {%endfor%}
{%endblock%}

不会加载有关便笺的任何信息。我遗漏了什么?

除非您用一些信息填充
项目注释列表
,否则将没有什么可重复的内容

借助于s,并且拥有一个
项目
对象将有一组与之关联的注释,而无需查找它们

您应该能够使用
project.note\u set.all()
或在模板中使用以下命令查询它们:

{% for note in project.note_set %}

它不应该是
项目。注意设置
而不是
项目。注意设置
?@agconti我必须声明该项目吗。注意设置在什么地方?@user3399059否?当然不是?你看过我给你链接的文档了吗?“多对一关系是Django框架中一个相对标准且处理良好的方面。@LegostrMotropr抱歉,我在评论后读到了它,但它不起作用……我想问的是,我试图从项目细节而不是注释来看待它,正如在寻找所有孩子的父母obj中,他没有相反的想法