Django 和编程菜鸟在这里。我已经制作了一个我想部署的应用程序,但我需要弄清楚如何将 UpdateView 的访问权限限制为该对象的创建者,我很困惑。
目前,用户可以使用 CreateView .../universities/create/ 创建大学对象,但随后任何用户都可以使用 .../universities/update/ 编辑该对象。我想对此进行配置,以便只有该大学的创建者用户(具有 ManytoMany 属性“管理员”的任何用户)才能访问其大学对象的 UpdateView。
任何意见,将不胜感激。我在这上面花了几天时间,但并没有太大的吸引力……感谢您的阅读。
模型.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'