Достаточно долго боролся чтобы пронять как сохранить поле с models.FileField.
Исчерпывающей информации ни где не мог найти. Натыкался на обрывочные данные, но целого примера не было. Пишу может кому-то будет полезно.
Есть такая модель
class VacancySync(models.Model): datetime_sync = models.DateTimeField(verbose_name='Время синхронизации', null=True, blank=True) data_file = models.FileField(verbose_name='Файл синхронизации') status = models.PositiveSmallIntegerField(verbose_name='Статус', choices=((0, 'Загружен'), (1, 'В работе'), (2, 'Ошибка'), (3, 'Готово')), default=0) log = models.TextField(verbose_name='Лог', null=True, blank=True)
Стоит задача программно создать запись.
Решение:
''' Подключаем необходимые модули, Классы, функции ''' from django.core.files import File from django.core.files.storage import default_storage from job_catalog.models import VacancySync
''' Код создания объекта с полем models.FileField в Django ''' f = open('kftp/wp_post_yandex') path = default_storage.save('media/wp_post_yandex', File(f)) VacancySync.objects.create(data_file=path)