Django Choice Field查询集,包含用户的相关对象列表

问题描述 投票:0回答:1

我为每个用户提供了UserProfile模型,该模型与另一个Team模型有很多关系,用于存储每个成员所属的团队列表。

class Team(models.Model):
    team_name = models.CharField(max_length=200)
    organization_name = models.CharField(max_length=200)

    def __unicode__(self):
        return self.organization_name

class UserProfile(models.Model):
    user = models.OneToOneField(User, unique=True, related_name='profile')
    team = models.ManyToManyField(Team)

我想创建一个包含团队字段的表单,该团队字段允许用户从列表中选择被过滤的团队,以便仅允许该用户按关系选择他们所属的团队。

我对如何处理这个问题很困惑,但我认为它会是某种过滤的查询集?

django forms django-queryset
1个回答
0
投票

首先,您需要一个非常简单的模型表单,然后您只需要在视图中查询所需的模型,并通过instance = query在表单中创建和实例,或者您可以这样做,但它是更难,但更具体,可以完成更具体的操作,所以我将链接它,How To Exclude A Value In A ModelMultipleChoiceField?

forms.朋友

 class GetTeamForm(forms.ModelForm):
    class Meta:
       model = UserProfile
       exclude = ('user',)

views.朋友

def GetTeamView(request):
    user = request.user #assuming the user is signed in
    get_users_teams = UserProfile.objects.filter(user=user)
    if request.method == 'POST':
      form = Get_Team_Form(request.POST, instance=get_user_teams):
      if form.is_valid():
        form.save()
      else:
        print form.errors()
    else:
      form = GetTeamForm(instance=get_user_teams)
     return render(request, 'htmlfile.html', {'form':form},)
© www.soinside.com 2019 - 2024. All rights reserved.