我使用的是 Django 1.10.3,在迁移步骤中,当我使用 RunPython() 调用自定义管理器方法时遇到错误。有什么想法我做错了吗?
错误消息是: AttributeError: 'Manager' 对象没有属性 'current_event'
我的模特和经理:
class EventManager(models.Manager):
use_in_migrations = True
def current_event(self):
try:
the_event = self.filter(
event_date__gte=date.today()
).earliest(
field_name='event_date'
)
except ObjectDoesNotExist:
the_event = None
return the_event
class Event(models.Model):
event_date = models.DateField()
objects = EventManager()
Run Code Online (Sandbox Code Playgroud)
我的迁移:
def update_ratings_event(apps, schema_editor):
Rating = apps.get_model('league', 'Rating')
Event = apps.get_model('league', 'Event')
recent_event = Event.objects.current_event()
for a_rating in Rating.objects.all():
a_rating.event = recent_event
a_rating.save()
class Migration(migrations.Migration):
dependencies = [
('league', '0009_auto_20170401_1106'),
]
operations = [
migrations.RunPython(update_ratings_event),
]
Run Code Online (Sandbox Code Playgroud)
这是回溯:
File "manage.py", …Run Code Online (Sandbox Code Playgroud)