2010-07-29 40 views
1

您好我想重写django.views.generic.create_update.create_object重写Django的Create_object

更准确地说,当创建通过URL被称为对象[这里的项目]上

例如: http://localhost:8000/projects/create/

我需要在控件传递给create_object之前检查一些权限。我知道装饰者会帮助我做到这一点。我尝试使用装饰器,但不幸的是它并没有取得多大的成功。有人请告诉我,我应该怎么做。它会非常有帮助 预先感谢

回答

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>