英文:
Django search list in a list with foreign key
问题
我正在学习Django(也是编码),但有一件我认为非常简单的事情我做不出来。我想创建一个简单的项目管理应用。
我创建了两个模型:Project(项目)和Step(步骤)。在Step模型中,有一个外键关联到Project模型。
class Project(models.Model):
title = models.CharField(max_length=100)
def __str__(self):
return self.title
class Step(models.Model):
title = models.CharField(max_length=100)
project = models.ForeignKey('Project', on_delete=models.CASCADE, null=True)
我成功创建了一个项目的步骤,并能够列出一个项目的所有步骤,但现在在我的首页,我想列出所有的项目以及每个项目中的4个步骤,例如:
项目1(步骤1,步骤2,步骤3,步骤4)
项目2(步骤1,步骤2,步骤3,步骤4)
我正在使用ListView,但我不知道该怎么做,因为在我的步骤模型中有项目的ID。那么,我应该如何按项目排序步骤呢?
class ProjectList(ListView):
model = Project
template_name = 'project/index.html'
我是否需要创建一个查询集?如果需要,我应该写什么?
queryset = Step.objects.filter(project_id='?')
我在思考,也许我在外键上做错了什么,也许我应该将任务(task)放在项目中。
希望你能理解我想要做的事情,谢谢你阅读我的问题
英文:
i'm beginning in django (and coding too) and i can't do something which i guess is super easy . I want to create a simple project management .
I created 2 models : Project and Step . And in step there are a foreign key for 1 project.
class Project(models.Model):
title = models.CharField(max_length=100)
def __str__(self):
return self.title
class Step(models.Model):
title = models.CharField(max_length=100)
project= models.ForeignKey('Project', on_delete=models.CASCADE, null=True)
I succed to create a step in a project , to do a list to see all step for 1 project but now in my home page , i want to list all projects and 4 steps in each project for example :
Project 1 (Step 1, Step 2, Step 3 ,Step 4)
Project 2 (Step 1, Step 2, Step 3, Step 4)
I'm using the ListView , but i don't know what to do , because it's in my step there are the id of project . So how I sort steps by project ?
class ProjectList(ListView):
model = Project
template_name ='project/index.html'
Do i need to create a queryset if so what i should write ?
queryset = setp.objects.filter(project_id='?')
I'm thinking maybe i did something wrong with the foreign key , and i maybe should put task in project .
I hope you understand what i want to do and thank you to read me
答案1
得分: 2
Sure, here is the translated code part:
{% for obj in object_list %}
<h1>{{ obj.title }}</h1>
{% for step in obj.step_set.all %}
<p>{{ step.title }}</p>
{% endfor %}
{% endfor %}
Please let me know if you need any further assistance.
英文:
{% for obj in object_list %}
<h1>{{ obj.title }}</h1>
{% for step in obj.step_set.all %}
<p>{{ step.title }}</p>
{% endfor %}
{% endfor %}
you can do this way in your templates.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论