2017-05-03 40 views
1

我在我的django应用程序中列出事件的现有事件模型。这些事件有一个海报字段,它使用models.ImageField来存储相关的海报。事件的上传是由管理员控制的,所以没有公开上传。该数据库有大约50项事件和事情工作正常。 由于图像变得越来越重,我尝试添加sorl.thumnail到django。在我的models.py文件中,我从sorl.thumbnails中导入了ImageField并将其添加到海报字段中。意外删除后还原Django模型字段

当我跑makemigrations时,它报告'改变字段海报'然后我跑迁移和重新加载时,我没有看到管理员中的海报字段。 即使现有的事件已经失去了海报字段,图像也无法显示在模板中。

我已经恢复了更改并再次运行迁移,但海报字段仍然不可见。有什么方法可以恢复模型,并将其与现有的海报图片重新连接起来? 我使用python 3.5和django 1.11一切正常,这似乎是一个愚蠢的错误,为了获得更多的速度。

将不胜感激的任何建议。

这里是我的活动模式是什么样子class Events(models.Model): title = models.CharField(max_length=200) note = RichTextUploadingField() category = models.CharField(max_length=1, choices=EVENT_TYPES, verbose_name=_('Event Category')) date_from = models.DateTimeField(auto_now=False, blank=False) date_to = models.DateTimeField(auto_now=False, blank=False) poster = models.ImageField(upload_to='Programs/', blank=True, max_length=100, width_field=None, height_field=None) video = models.URLField(max_length=500, blank=True) capacity = models.SmallIntegerField(blank=True) venue = GeopositionField(blank=True)

Admin.py是一个简单的寄存器功能

class EventAdmin(admin.ModelAdmin): 
list_display = ('title', 'date', 'venue', 'category') 

admin.site.register(事件的EventAdmin)

+0

在数据库中是海报字段,数据是否可用?如果没有,你不能回到那些。因为那些已经从数据库中删除了 – Exprator

+0

我可以看到上传的文件。 django管理区域不再有海报字段。我已经尝试将models.py恢复到其初始状态,然后运行迁移,但仍不能恢复海报字段。我已添加事件模型定义 –

+0

显示admi.py的代码并现在告诉我您的实际需求和实际需要 – Exprator

回答

0

所以,它不数据完好无损,似乎很可能恢复丢失的领域。我正在使用MySQL作为项目。所以这是我在尽一切可能的努力挽救之后所做的。 首先我删除了applications/migrations文件夹中的所有迁移。然后我改变了模型中的字段名称。然后,当我运行makemigrations时,它向我显示了消息'Alter Field in Events',之后我继续进行迁移。

很高兴告诉您,我在运行Ubuntu Server的Amazon EC2实例上。所以我不得不重新启动实例,然后重新加载管理页面。但模型管理员的变化仍然不可见。

然后我不得不停止服务器,并在5分钟后启动它。这改变了公共IP和重新加载站点,我在管理员中看到了ImageUpload字段。其余数据完好无损。现在我只需要在相应的事件中重新上传图像。这不是我期望的正确解决方案,但这似乎是最好的解决方案。

+0

感谢您的更新。请注意,没有必要添加[解决]的设备或类似的标题,我们不这样做。如果这个答案是最令人满意的解决方案,那么如果您愿意,您可以单击相邻的刻度图标以自行接受。 – halfer