当您在我正在开发的应用程序中创建项目时,可以选择哪些用户应该成为该项目的成员。但是,我不希望项目的创建者(成为管理员)出现在您可以选择成为成员的用户列表中。
您要么是管理员,要么是会员,而不是两者兼而有之。当然,不添加一个自己作为成员是可能的,但我什至不希望它成为可能。
怎么可能做到这一点?
看法:
def project_add(request):
if request.method == "POST":
form = ProjectForm(request.POST)
if form.is_valid():
form.instance.date_added = datetime.date.today()
form.instance.date_updated = datetime.date.today()
form.instance.added_by_user = request.user
form.save()
return redirect(project_list)
else:
form = ProjectForm()
return render(request, 'projects/add.html', {"form" : form})
项目型号:
class Project(models.Model):
...rest of the fields...
added_by_user = models.ForeignKey(User)
users = models.ManyToManyField(User, related_name='projects')
def __unicode__(self):
return self.name
def owned_by_user(self, user):
return self.added_by_user == user
表格:
class ProjectForm(ModelForm):
class Meta:
model = Project
exclude = ('date_added', 'date_updated', 'added_by_user')
...
为了更清楚,我在下面提供了一张图片。我不希望“Nisse”可以在下面的“用户:”下选择(这是项目的成员),因为 Nisse 是创建项目的用户。