【发布时间】:2021-01-06 17:38:27
【问题描述】:
我是 Django 新手,有一个我自己无法解决的问题。这对我来说是个大问题。
我想显示与特定团队相关的项目列表,并将其显示在 ListView 中。
我假设它应该检查当前用户属于哪个团队,然后根据团队,它应该列出项目。
我的项目中有两个应用程序:1)用户和 2)项目
users.models:
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.contrib.auth import get_user_model
from django.urls import reverse
class CustomUser(AbstractUser):
bio= models.CharField(max_length=300, null= True, blank=True)
class Team (models.Model):
title = models.CharField(max_length=200)
user= models.ManyToManyField(get_user_model())
date_created= models.DateTimeField(auto_now_add=True, blank=True, null=True)
date_updated= models.DateTimeField(auto_now=True,blank=True, null=True )
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('team_detail', args=[str(self.pk)])
项目模型是
class Project (models.Model):
team= models.ForeignKey(Team,on_delete=models.CASCADE )
title = models.CharField(max_length=150, null=False, blank=False)
notes = models.TextField( null=True, blank=True)
date_created = models.DateTimeField(auto_now_add=True, blank=True, null=True)
date_updated = models.DateTimeField(auto_now=True, blank=True, null=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('project_detail', args=[str(self.pk)])
在 projects.views 中:我编写了以下代码,但无法计算出两个模型之间的查询集。
class ProjectPageView(ListView):
model = Project
def get_queryset(self):
queryset = super(ProjectPageView, self).get_queryset()
queryset = queryset.filter( XXXXXXXXXXXXXXX )
return queryset
context_object_name = 'projects_list'
template_name = 'projects/projects.html'
在 HTML 中
{% extends '_base.html' %}
{% block title %}Projects{% endblock title %}
{% block content %}
<h1> Project list for this Team : </h1>
{% for project in project_list %}
<div>
<h5><a href="{{ project.get_absolute_url }}">{{ project.title }}</a></h5>
</div>
{% endfor %}
{% endblock content %}
非常感谢您的帮助。
【问题讨论】:
标签: django django-models django-views