Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246

Django: FileField и обновление

07.05.2017, 23:43. Показов 1459. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Django 1.11

Посмотрите, пожалуйста, картинку и код. У модели есть поле FileField. Хочу заменить файл. Но при этом со старым файлом я произведу манипуляции (а именно - передвину его в другое место).

Во вьюхе я поставил точку останова (см. комментарий в коде). На картинке мы видим, что существующий файл - это 4_Oracle_Database_11g_PLSQL_Fundamentals _PLSQL.pdf. А заменю я его на C book 1.pdf.

Не могу понять, почему на точке останова у меня old_file_name = "C book 1.pdf".

Дело в том, что в суперклассе метод form_valid сохранит форму. Т.е. здеь мы еще не сохранили форму. Так в self.object.user_file должен же старый файл лежать. Он же еще не подменился.

Почитал в интернете. Что-то народ говорит - сделай через сигнал pre_save. Я еще не пробовал. Просто понять хочется, в чем я тут-то ошибаюсь.

Был бы признателен за совет.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class UserFile(models.Model):
    uuid = models.UUIDField(primary_key=False, default=uuid.uuid4,
                            editable=False)
    user_file = models.FileField(verbose_name=_("file"),
                                 max_length=255,
                                 upload_to=get_file_path)
 
class FileUpdate(UpdateView):
    model = UserFile
    form_class = FileForm
 
    def form_valid(self, form):
        """
        Delete old file.
        """
        parent_directory = get_parent_directory_of_file(self.object)
        old_file_name = self.object.user_file.name # Breakpoint
        self.object.user_file.delete()
        return super(FileUpdate, self).form_valid(form)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2017, 23:43
Ответы с готовыми решениями:

Django FileField путь
модель class Post(models.Model): ... upload = models.FileField(upload_to='uploads/%Y/%m/%d/', blank=True) def...

Django обновление записей
доброго времени суток! имеется модель from django.db import models class Vkontakte(models.Model): name =...

Обновление админки в django
Назрел вопрос относительно админки в джанго, суть в том что нужно дать возможность админу писать код, который бы отображался именно как...

2
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
07.05.2017, 23:46  [ТС]
Картинка - в приложенном файле.
Миниатюры
Django: FileField и обновление  
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
14.05.2017, 21:07
Ну во время форм вэлид данный берутся из формы где сейчас указан новый файл, что бы получить имя старого файла нужно достучаться до модели.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2017, 21:07
Помогаю со студенческими работами здесь

Обновление Post`a в Django
Создаю сайт в первый раз на Django. С помощью одного ютуб канала, делаю всё как по видео. Но в итоге, не могу уже пару дней понять свою...

Django, UpdateView, обновление с использованием ajax
Django 1.10. jquery-3.1.0 Решил сделать обновление данных через ajax. В общем, получаю чистое окно браузера. В Хроме в...

Django JET - обновление админки
Кто что думает? Django JET - современное обновление панели администратора Django с дополнительной и улучшенной функциональностью ...

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

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


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

Или воспользуйтесь поиском по форуму:
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