Как сохранить файл в папке создания при вставке данных в базу данных 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)