Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ModelA(models.Model):
- class Meta:
- permisssions =(('view_modela','Can view Model A'),)
- class ModelB(models.Model):
- class Meta:
- permisssions =(('view_modelb','Can view Model B'),)
- class CustomModel(models.Model):
- def __init__(self, *args, **kwargs):
- self._meta.permissions.append(('view_'+self._meta.module_name, u'Can view %s' % self._meta.verbose_name))
- super(CustomModel,self).__init__(*args, **kwargs)
- class ModelA(CustomModel):
- ....
- class ModelB(CustomModel):
- ...
- from django.db.models.base import ModelBase
- class CustomModelMetaClass(ModelBase):
- def __new__(cls, name, bases, attrs):
- klas = super(CustomModelMetaClass, cls).__new__(cls, name, bases, attrs)
- klas._meta.permissions.append(('view_' + klas._meta.module_name, u'Can view %s' % klas._meta.verbose_name))
- return klas
- class ModelA(models.Model):
- __metaclass__ = CustomModelMetaClass
- test = models.CharField(max_length=5)
- #create a custom manager
- class DynTableNameManager(models.Manager):
- #overwrite all() (example)
- #provide table_name
- def all(self, table_name):
- from django.db import connection
- cursor = connection.cursor()
- cursor.execute("""
- SELECT id, name
- FROM %s
- """ % table_name)
- result_list = []
- for row in cursor.fetchall():
- p = self.model(id=row[0], name=row[1])
- result_list.append(p)
- return result_list
- #cerate a dummy table
- class DummyTable(models.Model):
- name = models.CharField ( max_length = 200 )
- objects = DynTableNameManager()
- f = DummyTable.objects.all('my_table_name')
Add Comment
Please, Sign In to add comment