嗨我想覆盖 django.views.generic.create_update.create_object
通过url
在对象[此处项目]上调用创建时更精确例如:http://localhost:8000/projects/create/
我需要在控件传递给create_object之前检查一些权限。我知道装饰者会帮助我这样做。我尝试使用装饰器,但不幸的是它没有成功。有人请告诉我我应该怎么做。这将非常有帮助 提前感谢
答案 0 :(得分:1)
你需要的是经理。
详细信息:http://docs.djangoproject.com/en/dev/topics/db/managers/
简而言之:基本上django中的所有模型都由管理者管理,管理员负责创建对象并从数据库中获取内容等等。您所做的是创建一个自定义管理器并将其分配给您想要更改其行为的模型。
基本上是这样的:
class MyModel(models.Model):
property = models.SomeField()
objects = MyManager()
class MyManager(models.Manager):
def create(self, *args, **kwargs):
if <check permissions>:
return super(MyManager, self).create(*args, **kwargs)
else:
<raise some error>