Reputation: 20856
Here is my model and modelmanager. I basically want to override the save method, so I can perform some operations before saving the Companymanager.
I have defined a modelmanager but its save method is not being called when I try to save the company object.
class CompanyManager(models.Manager):
"""
Custom model manager to return a random scenario
"""
def save(self, *args, **kwargs):
#User.objects.create()
#print '*args == ', *args
#print '*kwargs == ', *kwargs
#User.objects.filter()
for each in args:
print 'each=',each
class Company(models.Model):
objects =CompanyManager()
COMPANY_SIZE = (
('1-10', '1-10'),
('11-50', '11-50'),
('51-200', '51-200'),
('201-500', '200-500'),
('501-1000', '501-1000'),
('1001-5000', '1001-5000'),
('5001-10000', '5001-10000'),
('10000+', '10000+'),
)
INDUSTRY = (
('Telecom','Telecom'),
('Technology','Technology')
)
users = models.ManyToManyField(User)
description = models.CharField(max_length=500,default='')
size = models.CharField(max_length=10,choices=COMPANY_SIZE,default='1-10')
industry = models.CharField(max_length=100,choices=INDUSTRY,default='---')
url = models.URLField(max_length=200,default='')
logo = models.ImageField(upload_to='company',default='')
addr1 = models.CharField(max_length=200,default='')
addr2 = models.CharField(max_length=200,default='')
city = models.CharField(max_length=200,default='')
state = models.CharField(max_length=2,choices=STATE_CHOICES,default='')
zip_cd = models.CharField(max_length=5,default='')
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
phone_number_1 = models.CharField(validators=[phone_regex], blank=True,max_length=15)
phone_number_2 = models.CharField(validators=[phone_regex], blank=True,max_length=15)
def __str__(self):
return self.name
Upvotes: 0
Views: 882
Reputation: 270
let sharedintance = modelmanagar()
class modelmanagar: NSObject {
var database : FMDatabase? = nil
class func getinstance() -> modelmanagar
{
if(sharedintance.database == nil)
{
let documentURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURL = documentURL.appendingPathComponent("dddddbbbbbb.sqlite" as String)
sharedintance.database = FMDatabase(path:fileURL.path)
}
return sharedintance
}
Upvotes: -1
Reputation: 53659
save()
is a model instance method, not a manager method. You need to move it to your model:
class Company(models.Model):
def save(self, *args, **kwargs):
#User.objects.create()
#print '*args == ', *args
#print '*kwargs == ', *kwargs
#User.objects.filter()
for each in args:
print 'each=',each
...
Upvotes: 5