我怎样才能从项目中驱除鬼模型?

时间:2017-03-17 18:56:21

标签: python django django-models django-orm

我有一个名为Media的模型;它被重命名为" PetImage"并进一步修订。现在ack找不到字符串" Media"在我的任何Python源文件,.pyc文件,我的模板或我的SQLite3数据库中。据我所知,重新检查来源(并重新启动Gunicorn),字符串" Media"不应该在我的项目的任何地方找到任何地方,除了例如CKeditor根目录下的东西。我也制作并执行了迁移。

但我仍然得到http://dpaste.com/0FX74SJ - Django因报道未能加载而错误播放" Media":

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

我能做些什么才能让Django不期待'模块' object(my 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的所有进一步活动,我应该怎么做?

谢谢,

1 个答案:

答案 0 :(得分:0)

  

ack在我的任何Python源文件,.pyc文件

中都找不到字符串“Media”

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