首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Choice字段查询集,包含与用户相关的对象列表

Django Choice字段查询集,包含与用户相关的对象列表
EN

Stack Overflow用户
提问于 2015-08-16 08:43:29
回答 1查看 955关注 0票数 0

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

代码语言:javascript
复制
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)

我想创建一个表单,其中包括一个团队字段,将允许用户从一个列表中选择团队,被过滤,只允许该用户选择他们所属的团队通过关系。

我对如何处理这个问题感到困惑,但我假设它是某种过滤的查询集?

EN

回答 1

Stack Overflow用户

发布于 2015-08-16 11:00:20

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

forms.py

代码语言:javascript
复制
 class GetTeamForm(forms.ModelForm):
    class Meta:
       model = UserProfile
       exclude = ('user',)

views.py

代码语言:javascript
复制
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},)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32030785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档