Загадочное предупреждение с FileField In Django Admin - PullRequest
0 голосов
/ 16 апреля 2020

Я создал модель ниже, чтобы связать файл с другим типом объекта с именем Organization.

Функция _path () устанавливает путь к файлу {MEDIA_ROOT} / orgs / {НАИМЕНОВАНИЕ ОБЪЕДИНЕННОЙ ОРГАНИЗАЦИИ} / {FILENAME} . Он также заменяет все пробелы в пути подчеркиванием.

Поэтому, если я загружаю файл "Draft1.do c" и связываю его с организацией с именем "Моя средняя школа", полный путь должен быть uploads / orgs / My_High_School / Draft1.do c

Это в моем файле settings.py

MEDIA_ROOT ='uploads/'

Это в моем models.py

class OrgFile(models.Model):

    def _path(instance, filename):
        return F"orgs/{instance.org.name.replace(' ', '_')}/{filename}"

    file = models.FileField(upload_to=_path)
    org = models.ForeignKey(Organization, on_delete=models.DO_NOTHING)

    def __str__(self):
        return self.file.name.split('/')[-1]

Когда я использую Admin для загрузки и связывания файла, файл создается в правильном месте на диске и, кажется, имеет правильный путь и ассоциации в администраторе.

Однако, когда я перейдите к объекту файла в администраторе и щелкните путь, помеченный в настоящее время , часть «uploads /» не включена в путь (что может быть в порядке), но я также получаю предупреждение:

Файл организации с идентификатором «9 / change / orgs / My_High_School / Draft1.doc» не существует. Возможно, оно было удалено?

Понятия не имею, почему это происходит, так как все остальное выглядит нормально. Я предполагаю, что ссылка должна привести меня к файлу.

Мне также интересно, означает ли это, что есть еще одна невидимая проблема с настройкой, которая появится позже?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...