永久指定用于模型

时间:2015-10-12 19:53:57

标签: python django django-models

我有以下型号:

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()

1 个答案:

答案 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多行代码,包括修改设置,您可以直接在模型中指定它。