Django: загрузка пути к файлу в поле базы данных
Хотелось как то к действующим записям в БД подгрузить файлы но не ввиде самого файла а только ссылки на него. Тоесть файл находиться на файл шаре и БД в поле models.Filefiekd() нужен только путь к этому файлу. Чтобы он не копировался при загрузуке в MEDIA_ROOT. В детальной информации по записи class DetailView я добавил кнопку редактировать и хотелось бы чтобы с class UpdateView я смог загрузить этот файл но в БД сохранить только путь к нему не файл-шаре.
views.py
# Редактируем проект
class ProjectUpdateView(UpdateView):
model = Project
form_class = ProjectForm
template_name = 'districtdb/edit_project.html'
context_object_name = 'edit_project'
models.py
class Project(models.Model):
num_internal = models.CharField(max_length=100, verbose_name='Внутрений номер')
type_doc = models.ForeignKey(Typedoc, on_delete=PROTECT, null=True, verbose_name='Тип документации')
date_doc = models.DateField(auto_now=False, verbose_name='Дата внутренея')
title = models.TextField(max_length=800, verbose_name='Наименование')
num_goverment = models.CharField(max_length=100, verbose_name='Внешний номер')
date_goverment = models.DateField(auto_now=False, verbose_name='Дата внешняя')
district = models.ForeignKey(District, on_delete=PROTECT, null=True, verbose_name='Район')
pdf = models.FileField(upload_to='attachment/', default='none', null=True, blank=True)
def __str__(self):
return self.title
class Meta:
verbose_name = 'Проект'
verbose_name_plural = 'Проекты'
def get_absolute_url(self):
return reverse('detail_project', kwargs={'pk': self.pk})
edit-project.html
% extends 'base.html' %}
{% block title %}{{ block.super }} :: Редактирование проекта{% endblock %}
{% block content%}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-4 mb-md-5 text-center">
<h4>Редактирование проекта</h4>
</div>
</div>
<div class="row justify-content-center align-items-center">
<div class="col-md-8">
<div class="d-flex flex-column">
<form method="post" action="{% url 'edit_project' edit_project.pk %}">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary">Сохранить</button>
</form>
<form action="{% url 'detail_project' edit_project.pk%}" class="mt-md-3">
{% csrf_token %}
<button type="submit" class="btn btn-secondary">Отмена</button>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
Как можно реализовать данную задумку.