Как сохранить файл в папке создания при вставке данных в базу данных django

Я хочу сохранить файл в автоматически созданной папке, связанной с id_number сотрудника.

Я добавляю следующий код в models.py

from django.db import models        
class Employee(models.Model):
      id_number = models.CharField(primary_key=True, null=False, blank=False, unique=True, max_length=15)
      full_name = models.CharField(max_length=255, null=False, blank=False)
      name_with_initials = models.CharField(max_length=255, null=False, blank=False)
      surname = models.CharField(max_length=255, null=False, blank=False)
      phone = models.CharField(max_length=15, null=False, blank=False)
      dob = models.DateField(null=False, blank=False)
      gender = models.CharField(max_length=10, null=False, blank=False)
      email = models.EmailField()
      address = models.CharField(max_length=255, null=False, blank=False)
        
class EmployeeAttachments(models.Model):
      employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
      cv = models.FileField(upload_to=f'employee/attachments/', max_length=100)

я хочу сохранить файл cv в ex:- media->employee->attachments->emp001->emp001.pdf

может ли кто-нибудь сказать мне, как сделать это в django, django-rest-framework

Это изменит путь cv на EmployeeAttachments в соответствии с вашим Employee id

def facility_path(instance, filename):
    return f'attachments/employee/emp{instance.employee.id}/emp{instance.employee.id}.pdf'

class EmployeeAttachments(models.Model):
      employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
      cv = models.FileField(upload_to=facility_path, max_length=500)
Вернуться на верх