2015-05-19 455 views
0

我想使用方法在ImageField字段中設置動態upload_to。喜歡的東西thisDjango - 從QuerySet獲取數據庫別名

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) 

更新

我不知道這有什麼用,但我使用Django的1.7.1

我在做一個試驗與模型以上:

models.py

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"] 

我得到的終端形式提交:

終端

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

另一種選擇,可以使進口並獲得數據庫別名,但我不知道在哪裏從尚未得到這個。

回答

0

instance._state.db應該返回數據庫別名。

+0

也許這個工作的另一個Django版本,但不要在Django 1.7.1或至少沒有'ImageFields' – MikeVelazco