django中对数据库增加额外的操作,有一种办法是增加额外的manager方法是为模块添加表级功能。比如下面这块代码段,我在models.py这个文件里面定义的:fromdjango.dbimportmodels#...AuthorandPublishermodelshere...classBookManager(models.Manager):deftitle_count(self,keyword):returnself.filter(title__icontains=keyword).count()classBook(models.Model):title=models.CharField(max_length=100)authors=models.ManyToManyField(Author)publisher=models.ForeignKey(Publisher)publication_date=models.DateField()num_pages=models.IntegerField(blank=True,null=True)objects=BookManager()def__unicode__(self):returnself.title但是,发现一个问题,如果我先定义了Book()这个模型,再定义BookManager()这个模型,会报"NameError:name'BookManager'isnotdefined",显然是因为在Book类中使用了objects=BookManager()这个原因。而我印象中,似乎定义函数和类是没有先后关系的;会在使用的时候自动查看是否声明过。请大大帮指点下我这块的知识盲点。谢谢!!马年恭喜发财!
守候你守候我
森栏
相关分类