Изменение сохраненного пути к файлу в задаче django celery
У меня есть модель с именем Flights
class Flights(models.Model):
field = models.ForeignKey(Field, on_delete=models.CASCADE)
datetime = models.DateTimeField(blank=True, null=True, default=timezone.now())
nir = models.FileField(upload_to = user_directory_path_flights, null=True, blank=True)
red = models.FileField(upload_to = user_directory_path_flights, null=True, blank=True)
rededge = models.FileField(upload_to = user_directory_path_flights, null=True, blank=True)
green = models.FileField(upload_to = user_directory_path_flights, null=True, blank=True)
Пользователь загружает некоторые файлы и через задачу celery я получаю эти файлы и редактирую их в новые. После этого они сохраняются в папке src, хотя я хочу сохранить их в src/media/flights/username.
Как мне это сделать? Должен ли я изменить модель Flights и добавить путь к файлу или что-то еще? И как это сделать?
задача селери :
@shared_task(bind=True)
def get_Flights_Data(self,flight_id):
identifier = Flights.objects.get(pk=flight_id)
redF = identifier.red
nirF = identifier.nir
rededgeF = identifier.rededge
print('Analyzing Flight')
red = Image.open(redF)
nir = Image.open(nirF)
rededge = Image.open(rededgeF)
...............
К сожалению, вы не задали свой вопрос правильно, поэтому я постараюсь помочь вам, насколько смогу.
вы можете переписать предыдущий файл, сохраненный на модели. Так что все, что вам нужно сделать, это сохранить его по тому же пути к файлу после открытия и изменения файла.
red= Image.open(redF)
red.save(fp=redF.filepath)
Другой вариант - вы можете удалить старый и сохранить новый файл и указать новый путь к файлу вашей модели. и не забудьте сохранить его.