我为每个用户提供了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)
我想创建一个包含团队字段的表单,该团队字段允许用户从列表中选择被过滤的团队,以便仅允许该用户按关系选择他们所属的团队。
我对如何处理这个问题很困惑,但我认为它会是某种过滤的查询集?
首先,您需要一个非常简单的模型表单,然后您只需要在视图中查询所需的模型,并通过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},)