我想知道什么是使用Django迁移删除所删除应用程序的所有表的最简洁方法.例如,如果我安装了一个新软件包,我将应用程序添加到我的settings.py中,然后执行manage.py makemigrations和manage.py migrate; 当我决定我不想使用这个包并将其从我的settings.py中删除时,命令manage.py makemigrations将告诉我"未检测到任何更改",因此manage.py migrate将无能为力,但我需要删除此删除的应用程序创建的表.
我期望Django迁移处理这个,所以如果我删除一个应用程序,它也会创建迁移以删除所有必要的表.
这个问题已经由我自己解决了.请阅读下面的答案.
我得到一个" fields选项必须是列表或元组.得到str." 在运行我的Django应用程序时.使用调试器运行完全相同的代码,如果我在错误行中有一个断点,那么它不会失败,应该是一个元组似乎是一个元组.
问题似乎位于DRF ModelSerializer内的以下代码中:
def __init__(self, *args, **kwargs):
# Don't pass the 'fields' arg up to the superclass
fields = kwargs.pop('fields', None)
# Instantiate the superclass normally
super(ChHiveLevel1Serializer, self).__init__(*args, **kwargs)
if fields is not None:
# Drop fields that are specified in the `fields` argument.
for field_name in fields:
self.fields.pop(field_name)
print("fields to be included: ", self.fields)
Run Code Online (Sandbox Code Playgroud)
在views.py中我只是这样做:...
hives = profile.hive_subscriptions
# En fields se le pasa el campo a eliminar del serializador
fields = ('priority', …Run Code Online (Sandbox Code Playgroud) 我们是一家建立聊天服务的小型创业公司,我们在弄清楚如何存储聊天记录方面遇到了大麻烦.我们也不确定龙卷风是如何在我们的场景中.
我们有一个在Heroku上运行的Django应用程序,我们还不确定是否应该实现一个单独的Tornado应用程序将消息转发给Pusher,所以现在是Django应用程序从客户端接收消息并将它们转发到Pusher通道.
我们的初始架构现在如下图所示:

我们使用PostgreSQL存储用户配置文件,聊天室信息等.我们不知道什么是存储聊天消息的最佳方法.我们也可以使用PostgreSQL吗?是否可以使用Redis持久化来存储整个聊天历史记录(即使应用程序在用户数量上增长很多),或者最好将Redis用于最新消息,并将PostgreSQL用于整个历史记录.我们也很好奇其他NoSQL解决方案,比如couchDB,HBase等,这些解决方案似乎是在hipchat或line这样的大型应用程序的架构中,但似乎很少有项目在一开始就使用它们并且在Heroku中支持它们不一样.如果我们计划有一个大的增长,我们应该看看它们吗?
这是我们头痛的第一部分,另一部分是如果我们已经在使用Pusher,将Tornado用于我们应用程序的消息传递部分是多么重要.如果我们这样做,那么将两种应用程序结合起来可能是一种可行的方法.如果Tornado应用程序接收并存储消息:我们如何从Django模型层访问此消息以执行搜索等等?Tornado应用程序可以将消息存储在与Django应用程序共享的数据库中吗?
相关问题:
对于Django应用程序,使用Pusher龙卷风的优势(或需求)是什么?
/sf/ask/1551957641/
最后:芹菜怎么帮忙?我们可以坚持使用Django并使用Celery对消息进行排队,以便将它们异步传递给Pusher吗?
如果你能对此有所了解,我们将非常感激.本周我们已经进行了很多研究,但仍然没有真正清楚!很高兴知道我们是否可以从最简单的开始并进行某种进展:在我们的PostgreSQL中使用Django存储聊天记录,然后转移到Redis以获取最新消息的缓存,然后可能整合Celery和等等.或者,如果我们应该继续并实施一个龙卷风应用程序来处理从现在起与消息传递相关的所有内容!