如何为模型django创建视图
如何为此模型构建一个函数,以便在页面上显示团队成员的team.name,并列出团队成员的my team.members如何为模型django创建视图,django,view,Django,View,如何为此模型构建一个函数,以便在页面上显示团队成员的team.name,并列出团队成员的my team.members class Team(models.Model): name = models.CharField(max_length=255) members = models.ManyToManyField(User, related_name='teams') created_by = models.ForeignKey(User, related_name='
class Team(models.Model):
name = models.CharField(max_length=255)
members = models.ManyToManyField(User, related_name='teams')
created_by = models.ForeignKey(User, related_name='created_teams', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
plan = models.ForeignKey(Plan, related_name='teams', on_delete=models.SET_NULL, null=True, blank=True)
views.py
def团队(请求):team_list=team.objects.all() 返回呈现(请求,模板名称,{'team\u list':team\u list}); Team_Display.HTML
{team_list%中的obj的百分比}
{{obj.name}
假设您使用url将团队名称作为slug传递
from django.shortcuts import render
from app_name.models import Team
def view_name(request, team_name):
team = Team.objects.filter(name=team_name)[0]
members = team.members.all()
context = {"team_name":team_name, "members":members}
return render(request, template_name, context)
在模板中:
Team Name : {{team_name}}
{% for member in members %}
{{member}}
{% endfor %}
由于您的成员字段是M2M,具有用户模型,因此您可以使用
{{ member.name }}
{{ member.email }}
.
.
.
etc in your template
其中,
name,email
是用户模型的字段在Prakar的回答(thnx so much:)的帮助下,我为自己编译了一个更合适的解决方案
views.py
def team_view(request):
team = Team.objects.filter(members__in=[request.user]).first() // only shows to team members
members = team.members.all()
team_name = team.name
context = {
'team_name': team_name,
"members":members
}
return render(request, 'team.html', context)
template.html
{{ team_name }}
{% for member in members %}
{{ member.username }}
{% endfor %}
感谢对Prakar的巨大帮助:)您希望列出所有团队名称及其成员,或者只列出特定的团队。您在这里的用例是什么?您只需要为团队显示团队名称,此团队的成员只需要为团队成员自己显示。我大致知道如何为成员显示团队名称,但我不知道如何显示所有成员及其信息,因为mebers没有模型非常感谢,你的回答挽救了我的生命,也帮助我找到了答案,我重新编辑了一下,以获得我现在想要发布的内容)很高兴它成功了!:)您可以在下面查看)
def team_view(request):
team = Team.objects.filter(members__in=[request.user]).first() // only shows to team members
members = team.members.all()
team_name = team.name
context = {
'team_name': team_name,
"members":members
}
return render(request, 'team.html', context)
{{ team_name }}
{% for member in members %}
{{ member.username }}
{% endfor %}