Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 3

Django FileField путь

12.12.2017, 14:00. Показов 2585. Ответов 2

Студворк — интернет-сервис помощи студентам
модель
Python
1
2
3
4
5
class Post(models.Model):
    ...
    upload = models.FileField(upload_to='uploads/%Y/%m/%d/', blank=True)
    def __str__(self):
        return self.post_caption
вьюха
Python
1
2
3
4
5
6
7
8
9
10
11
    {% for post in latest_post_list %}
        <li>
        <a href="{%url 'blogs:detail' post.id %}">{{ post.post_caption }} ({{ post.post_author_id }})</a>
        <br>
        {{ post.upload }}
        <br>
        MEDIA_URL: {{ settings.MEDIA_URL }}
        <br>
        <img src="{{ post.upload }}" />
        </li>
    {% endfor %}
настрокий
Python
1
2
3
4
5
...
STATIC_URL = '/static/'
 
MEDIA_URL = '/blogs/uploads/111/'
MEDIA_ROOT = os.path.join(BASE_DIR, '/blogs/123/')
конфигуратор ссылок
Python
1
2
3
4
urlpatterns = [
   ...
    url(r'^uploads/(?P<path>.*)$', serve,{'document_root':'uploads'}),
]
Работает и картинка отображается.
Сохраняется картинка по пути относительно проекта (не приложения) вида uploads/%y/%m/%d/file_name. А как поменять точку входа в папку загрузок?
Сейчас ссылка на картинку у объекта выглядит вот так: "uploads/2017/12/11/Screenshot_453.jpg". Полный путь /projects/my_project/uploads/2017/12/11/Screenshot_453.jpg
Допустим папку с загрузками надо перенести из /projects/my_project/ в /projects/my_project/upload_my_app_name
Если исправить в моделе upload_to, то все вновь добавляемые файлы будут сохраняться по новому пути, а что произойдет с уже имеющимися записями? И подправим конфигуратор ссылок

Python
1
url(r'^my_app/uploads/(?P<path>.*)$', serve,{'document_root':'my_app/uploads'}),

Объясните как использовать MEDIA_URL, подозреваю что ответ именно в этом
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2017, 14:00
Ответы с готовыми решениями:

Django: FileField и обновление
Django 1.11 Посмотрите, пожалуйста, картинку и код. У модели есть поле FileField. Хочу заменить файл. Но при этом со старым файлом я...

Работа с FileField
Добрый день, надеюсь на вашу помощь я создаю поле FileField, оно работает отлично, при вызове появляется окно выбора файла, но я могу...

SqlAlchemy FileField
Вообщем ищу реализацию FileType для Column в SqlAlchemy. Нигде не могу её найти. Подскажите, может есть у кого или как реализовать? Нужно...

2
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
15.12.2017, 14:56
Цитата Сообщение от Kuzzzmit4 Посмотреть сообщение
Сохраняется картинка по пути относительно проекта (не приложения) вида uploads/%y/%m/%d/file_name. А как поменять точку входа в папку загрузок?
Что значит точка входа? Как поменять путь до каталога, в который будут складываться файлы?
Вот дока:
https://docs.djangoproject.com... .upload_to

Там пример есть. В общем, это атрибут upload_to.

Цитата Сообщение от Kuzzzmit4 Посмотреть сообщение
Допустим папку с загрузками надо перенести из /projects/my_project/ в /projects/my_project/upload_my_app_name
В базе данных хранятся пути до файлов (относительно MEDIA_ROOT). Надо их будет поменять в базе данных. Если хотите, чтобы файлы были доступны.

Цитата Сообщение от Kuzzzmit4 Посмотреть сообщение
Если исправить в моделе upload_to, то все вновь добавляемые файлы будут сохраняться по новому пути, а что произойдет с уже имеющимися записями?
Ничего не произойдет. Файлы будут доступны по пути, хранимому в базе данных.

Цитата Сообщение от Kuzzzmit4 Посмотреть сообщение
Объясните как использовать MEDIA_URL, подозреваю что ответ именно в этом
Очень широкий вопрос. Спрашивайте, пожалуйста, в чем затруднения.
В целом вот дока: https://docs.djangoproject.com... tic-files/
0
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 3
15.12.2017, 16:51  [ТС]
Цитата Сообщение от Kifsif Посмотреть сообщение
Что значит точка входа? Как поменять путь до каталога, в который будут складываться файлы?
Вот дока:
https://docs.djangoproject.com... .upload_to
Там пример есть. В общем, это атрибут upload_to.
Сейчас параметр upload_to задает путь от корня проекта, куда будет сохранятся загружаемый файл. Этот путь и будет хранится в поле БД. Понятно.

Цитата Сообщение от Kifsif Посмотреть сообщение
В базе данных хранятся пути до файлов (относительно MEDIA_ROOT). Надо их будет поменять в базе данных. Если хотите, чтобы файлы были доступны.
Данные в БД о расположении файлов указывают относительно MEDIA_ROOT? Допустим сейчас загруженные файлы хранятся в корне проекта (/srv/projects/my_project/) и я решил перенести их в /tmp/my_project/, то MEDIA_ROOT надо присвоить /tmp/my_project ?

Цитата Сообщение от Kifsif Посмотреть сообщение
Ничего не произойдет. Файлы будут доступны по пути, хранимому в базе данных.
Т.е. migrate не изменит их. Понял.

Цитата Сообщение от Kifsif Посмотреть сообщение
Цитата Сообщение от Kuzzzmit4 Посмотреть сообщение
Объясните как использовать MEDIA_URL, подозреваю что ответ именно в этом
Очень широкий вопрос. Спрашивайте, пожалуйста, в чем затруднения.
В целом вот дока: https://docs.djangoproject.com... tic-files/
Не понятно как использовать MEDIA_URL. Где и как его значение пригодится?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2017, 16:51
Помогаю со студенческими работами здесь

Как в Yii сделать поле fileField обязательным?
Добрый день, такая проблема. Есть модель Slider с текстовыми свойствами и с внешним ключом на модель, которая хранит имена файлов. ...

Настроить авторизацию через социальные сети в django с помощью Django Social Auth
Пытаюсь настроить авторизацию через социальные сети в django с помощью Django Social Auth, но вылетаю с ошибкой WrongBackend, не работает...

Django 2.0 восстановление пароля через django-allauth
Здравствуйте, у меня возник вопрос, в django-allauth есть функция восстановления пароля по эл. почте, но вот, указав почту, сообщение не...

совместимость django-imagekit с релизами Django?
Скажите, пожалуйста, где в документации django-imagekit указана совместимость с релизами Django? А то попробовать уже переводить свой...

Ошибка django: DoesNotExist at /catalog/ django
Здравствуйте. Пишу простейший сайт на django. Пока в нем есть верхняя панель навигации и боковое меню слева, содержание которого меняется в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru