我有以下型号:
class Language(models.Model):
code = models.CharField(max_length=6, primary_key=True)
language = models.CharField(max_length=20)
我所做的查询是:
Language.objects.using('avails').all()
我如何在模型中永久地指定它,所以我可以Language.objects.all()
?
答案 0 :(得分:2)
这是一个模型管理器,它比单个模型的路由器使用起来要简单得多。请注意使用get_query_set
代替get_queryset
(来自Django custom manager get_queryset() not working) -
class AvailsDBManager(models.Manager):
def get_query_set(self):
return super(AvailsDBManager, self).get_query_set().using('avails')
class Language(models.Model):
code = models.CharField(max_length=6, primary_key=True)
language = models.CharField(max_length=20)
objects = AvailsDBManager()
现在,不是多个文件中的50多行代码,包括修改设置,您可以直接在模型中指定它。