如何从项目中驱除鬼模型?

问题描述:

我有一个叫做Media的模型;它从此改名为“PetImage”并进一步修改。现在ack在我的任何Python源文件,.pyc文件,我的模板或我的SQLite3数据库中都找不到字符串“Media”。据我重新检查信息源(并重新启动Gunicorn)我可以看出,字符串“Media”不应该在我的项目中的任何地方找到,除了例如。根据CKeditor的根源。我也制作并执行了迁移。如何从项目中驱除鬼模型?

但我仍然得到http://dpaste.com/0FX74SJ - Django是示数出在报告的故障载入“媒体”:

Exception Value: 'module' object has no attribute 'Media' 

我能做些什么,这样Django不指望“模块”对象(我的models.py,我认为)提供一个Media

,似乎越来越投诉是第四行,用函数for循环中:

def one_pet(request, pet_id): 
    pet = models.Pet.objects.get(id = pet_id) 
    media = [] 
    for item in models.PetImage.objects.all(): 
     if item.url.startswith('https://youtu.be/'): 
      media.append('') 
     else: 
      media.append('') 
    return render(request, 'one_pet.html', { 
     'pet': pet, 
     'site_name': settings.SITE_NAME, 
     }) 

是否有额外的簿记模型是否改名呢?如果我想将我的PetImage作为Media的继承者,并且所有进一步的活动都针对PetImage,我应该怎么做?

感谢,

+0

如果可以,我建议您将所有模型的表格(直接放入数据库),进入django.migrations表格并删除与您的应用程序相关的任何内容,然后删除应用程序的migrations文件夹并执行干净的迁移。这种事情在我的应用程序开发过程中发生过很多次,我不得不多次执行此过程 – Mojimi

ACK没有找到任何我的Python源文件中的字符串“媒体”,pyc文件

我不认为它会罚他们在.pyc文件。你有没有试过删除所有pyc files in the directory?如果出现这种情况,您可以设置PYTHONDONTWRITEBYTECODE environment variable或在版本控制设置中的合并后钩子中执行递归删除。