私が取り組んでいるアプリでプロジェクトを作成すると、プロジェクトのメンバーになるユーザーを選択できます。ただし、プロジェクトの作成者 (管理者になる) を、メンバーとして選択できるユーザーのリストに含めたくありません。
管理者またはメンバーのいずれかであり、両方ではありません。もちろん、自分を一人もメンバーに加えなくても可能ですが、可能にしたくありません。
これはどのように行うことができますか?
見る:
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 はプロジェクトを作成しているユーザーであるため、下の "Users:" (プロジェクトのメンバー) で "Nisse" を選択できるようにしたくありません。