Моя модель:Джанго: FileField имя специальные символы заменяются автоматически
class MyFile(models.Model):
file = models.FileField(upload_to="myfiles", max_length=500)
slug = models.SlugField(max_length=500, blank=True)
Когда имена файлов содержат специальные символы, такие как ' «(пробел), специальные символы будут заменены подчеркиванием автоматически. Где (в какой функции) это происходит? Как отключить автоматическую проверку?
Благодаря
UPDATE
Любые комментарии по следующим кодам? Thanks
"""
https://docs.djangoproject.com/en/1.9/_modules/django/core/files/storage/#Storage.get_valid_name
Overwrite get_valid_name() function,
"""
class OverwriteStorage(FileSystemStorage):
def get_valid_name(self, name):
print "name=", name
return name
class MyFile(models.Model):
file = models.FileField(upload_to="myfiles", max_length=500, storage=OverwriteStorage())
Что это за особый символ? Одиночные кавычки? Иногда ваша оболочка заменяет эти символы. Это похоже на то, что вы прикасаетесь к новому файлу в своей оболочке со специальными символами в имени файла. –
@ShangWang, например. space – BAE
ваше решение правильное, если вы используете его только для одной модели, вы можете проверить мой обновленный ответ, если вы хотите установить глобально – fodma1