Django - 从QuerySet获取数据库别名

时间:2015-05-19 15:49:08

标签: django django-models django-orm

我想使用方法在ImageField字段中设置动态def content_file_name(instance, filename): return '/'.join(['content', instance.database_alias, filename]) class Content(models.Model): name = models.CharField(max_length=200) user = models.ForeignKey(User) file = models.FileField(upload_to=content_file_name) 。像Demo.这样的东西:

from django.db import models


def content_file_name(instance, filename):
    print "INSTANCE(%s)" % instance._state.db
    return "/".join(instance._state.db, filename)


class Cliente(models.Model):

    class Meta:
        verbose_name = "Cliente"
        verbose_name_plural = "Clientes"

    Nombre = models.CharField("Nombre", max_length=50)
    Foto = models.ImageField(upload_to=content_file_name)

    def __unicode__(self):
        return "Hello World"

    MY_FIELDS = ["Nombre", "Foto"]

更新

我不知道这是否有用,但我正在使用 Django 1.7.1

我正在使用上面的模型进行测试:

models.py

INSTANCE(None)
[19/May/2015 21:19:55] "POST /default/clientes/new HTTP/1.1" 500 168242

我正在表单提交终端:

终端

akka.routing.GetRoutees

另一种选择可能是导入并获取数据库别名,但我不知道从哪里获取它。

1 个答案:

答案 0 :(得分:0)

instance._state.db应该返回数据库别名。