Django阻止默认权限

时间:2014-04-09 14:52:46

标签: python django

class Product(BaseModel):   
    code = models.CharField(max_length=25)
    --

    class Meta:
        db_table = 'products' 
        permissions = (("can_create_product", "Can create product"),                       
                       ("can_edit_product", "Can edit product"),)


class Product_stock(models.Model):
    product = models.ForeignKey(Product)
    warehouse = models.ForeignKey(Warehouse_list)
    stock = models.FloatField(validators = [MinValueValidator(0.0)])

    class Meta:
        db_table = 'product_stocks' 

在第二个模型中,我不想要权限。但是django为它创建了三个默认权限。我怎么能阻止这个。

2 个答案:

答案 0 :(得分:0)

查看Meta inheritance背后的规则。

您应该在Product_stock模型中执行此操作:

class Meta:
    db_table = 'product_stocks' 
    permissions = ()

这应该覆盖从超级模型继承的Meta权限。

答案 1 :(得分:0)

我知道这是一个古老的问题,但是根据Django docs你可以覆盖这样的默认模型权限,这对我看到这个问题的人来说是2美分。

class Meta:
    db_table = 'product_stocks'
    default_permissions = ()