Django とプログラミング初心者はこちら。デプロイしたいアプリケーションを作成しましたが、UpdateView へのアクセスをそのオブジェクトの作成者に制限する方法を理解する必要があり、困惑しています。
現在、ユーザーは CreateView .../universities/create/ を使用して大学オブジェクトを作成できますが、その後はすべてのユーザーが .../universities/update/ を使用してそのオブジェクトを編集できます。その大学の作成者であるユーザー (ManytoMany 属性「管理者」を持つユーザー) のみが大学オブジェクトの UpdateView にアクセスできるように、これを構成したいと考えています。
アドバイスをいただければ幸いです。私はこれに数日を費やしましたが、あまり牽引力がありませんでした...読んでくれてありがとう。
models.py
class University(models.Model):
name = models.CharField(max_length=100)
about = models.TextField()
administrators = models.ManyToManyField(User)
profile_picture = models.FileField(upload_to=get_upload_file_name, blank=True)
def __unicode__(self):
return unicode(self.name)
def get_absolute_url(self):
return reverse('university_detail', kwargs={'pk': str(self.id)})
ビュー.py
class UniversityCreateView(CreateView):
model = University
form_class = UniversityForm
template_name = 'university_create.html'
def form_valid(self, form):
f = form.save(commit=False)
f.save()
return super(UniversityCreateView, self).form_valid(form)
class UniversityUpdateView(UpdateView):
model = University
form_class = UniversityForm
template_name='university_form.html'