Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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_View - Fatal编程技术网

如何为模型django创建视图

如何为模型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='

如何为此模型构建一个函数,以便在页面上显示团队成员的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='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 %}