Django makdmigrations вызывает ошибку после удаления функции в models.py
Я определяю модель Foo, которая имеет поле FileField с именем bar, и определяю функцию baz, которая является вызываемой и используется для аргумента bar's upload_to в том же файле. Когда я удаляю поле bar и функцию baz и выполняю операции makemigrations, возникает ошибка "AttributeError: module 'models' has no attribute 'baz'".
Как я могу решить эту ошибку?
ниже представлен демонстрационный сниппет
import os
import time
from django.db import models
def baz(instance, filename):
ext = filename.split('.')[-1]
fn = time.strftime('%Y%m%d%H%M%S')
com = fn + '.' + ext
return os.path.join('', com)
class Foo(models.Model):
name = models.CharField(max_length=255)
bar = models.FileField(upload_to=baz) # wants to remove
Это происходит из-за migration file. Для решения проблемы вы можете изменить путь выгрузки на строку в migrations файле, который содержит bar поле initial create. Измените поле миграции upload_to path.