【发布时间】:2015-05-19 15:49:08
【问题描述】:
我想使用方法在ImageField 字段中设置动态upload_to。类似this:
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
另一种选择是进行导入并获取数据库别名,但我还不知道从哪里得到它。
【问题讨论】:
标签: django django-models django-orm