- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有一个模型语言
。语言对象通过Django-admin
创建Admin。他们必须从下拉菜单中选择合适的标志文件。
问题是当我部署项目时没有可供选择的标志。
由于静态文件是在部署前收集的,所以我尝试设置这个路径:
flag = models.FilePathField(path='static/img/flags/550px',default='')
但是如您所见,它找不到任何东西。
如果我这样做,我可以从标志中选择:
flag = models.FilePathField(path=settings.BASE_DIR+'/static/img/flags/550px',default='')
但是仅仅调用 language.flag
是行不通的,因为它返回绝对路径。
<img src = "{{ language.flag }}">
产生这个:
<img src="/home/django/MyProject/static/img/flags/550px/ar.png">
我想到的唯一解决方案是创建一个剥离 path
切割“/home/django/MyProject/”的属性,但我不确定这是否是个好主意。
有没有更好的办法?
class Language(models.Model):
shortcut = models.CharField(max_length=40,
help_text=_('Shortcut of the language'),
unique=True)
name = models.CharField(max_length=40,
help_text=_('Name of the language'),
unique=True, verbose_name=_("Language"))
flag = models.FilePathField(path='static/img/flags/550px',default='/static/img/icons/check-icon.png')
def __str__(self):
return self.name
编辑:
管理.py:
from django.contrib import admin
from models import Language
admin.site.register(Language)
最佳答案
FilePathField.path
Required. The absolute filesystem path to a directory from which this >FilePathField should get its choices. Example: "/home/images".
强调我的。
当您在此处使用绝对路径时,您的模板确实会生成相对路径我无法告诉您那是什么,因为您在 FilePathField 中设置的路径与您声称获得的路径相互矛盾。但我可以向您保证,该模板将给出一个相对路径。
不确定,如果它是一个错误(可能是),但您的管理员将完整路径保存在标志对象中,而不仅仅是相对路径。所以我想使用属性是一种选择
@property
flag_path(self):
return self.flag.replace(settings.BASE_DIR,'')
另一种选择是覆盖管理保存模型方法以在此时进行剥离
关于python - Django FilePathField 不适用于相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41696920/
有一个模型语言。语言对象通过Django-admin创建Admin。他们必须从下拉菜单中选择合适的标志文件。 问题是当我部署项目时没有可供选择的标志。 由于静态文件是在部署前收集的,所以我尝试设置这个
我有以下 django 模型: RESOURCE_DIR = os.path.join(settings.MEDIA_ROOT, 'resources') class Resource(models.
我在一家后期制作公司工作,我们的媒体文件位于服务器上。通过在第二台服务器上运行的站点,用户将指向一个文件,执行一些操作(例如计算校验和)并将结果保存在数据库中。 我正在寻找有关如何使用 FilePat
我对使用哪个字段有点困惑。我需要的只是一个可以保存文件的字段(音频和/或另一个用于图像的字段) FileField 似乎专门用于上传,我认为这对于我需要的东西有点矫枉过正,我也不喜欢每次上传内容时它如
考虑以下模型: STOCK_IMAGE_DIR = os.path.join(settings.MEDIA_ROOT, 'stock_images') class Product(models.Mod
我有一个模型,它有 FilePathField 属性。它有一个要搜索的文件夹、要匹配的正则表达式和其他需要的参数。 我需要一个标准方法来获取此 FilePathField 路径的所有可用列表。或者它不
我是一名优秀的程序员,十分优秀!