Python django对mysql、sqlite和服务器的查询不同

Python django对mysql、sqlite和服务器的查询不同,python,mysql,django,sqlite,django-queryset,Python,Mysql,Django,Sqlite,Django Queryset,我有一个视图,其中包含一段代码 notif = Notification.objects.get(id=self.npk, body=q, viewed=False) notif.viewed = True notif.save() 这里我只想更新通知对象的viewsed属性 奇怪的是,当我在本地主机中对其进行本地测试时,它给出了我想要的结果,从而将所查看的通知变为真 但在生产中,它不会将查看的通知更改为true。我在开发中使用SQLite,并考

我有一个
视图
,其中包含一段代码

notif = Notification.objects.get(id=self.npk, body=q, viewed=False)
            notif.viewed = True
            notif.save()
这里我只想更新通知对象的viewsed属性

奇怪的是,当我在本地主机中对其进行本地测试时,它给出了我想要的结果,从而将所查看的通知变为真

但在生产中,它不会将查看的通知更改为true。我在开发中使用SQLite,并考虑在开发中使用MySQL,因为我在生产中使用MySQL

即使在开发中使用mysql,也没有错误。它将在开发中查看的通知变为真实,在生产中不会更改

这只发生在我身上吗?尝试了所有的可能性,但没有解决办法

使用相同数据库的相同查询在开发中有效,但在生产中无效。为什么?服务器有什么问题吗

class QuestionDetailView(DetailView):

context = {}

model = Question
template_name = "question-detail.html"
def get(self, request, pk, cpk, npk, **kwargs):

    self.pk = pk
    self.cpk = cpk
    self.npk = npk
    return super(QuestionDetailView, self).get(request, pk, cpk, npk, **kwargs)

def get_context_data(self, **kwargs):

    context = super(QuestionDetailView,self).get_context_data(**kwargs)

    context['question'] = Question.objects.get(pk=self.pk, published=True)
    q = context['question']
    if self.npk:
        print "with notification"
        #Notification.objects.filter(id=self.npk, body=q, viewed=False).update(viewed=True)
        try:
            notif = Notification.objects.get(id=self.npk, body=q, viewed=False)
            notif.viewed = True
            notif.save()
        except:
            pass
    return context

该代码当然会将该对象的viewsed属性的值设置为true,无论您使用的是什么db。你在哪里看到别的东西?显示准确的代码。执行此操作。。。python manage.py shell-->现在导入所需内容并运行命令更新通知对象。把装在贝壳上的木头贴上去。@daniel。。就像我说的,代码中没有任何错误。它在本地非常有效,但在生产中不起作用。我已经编写了相同的代码将通知标记为视图,这在本地和生产环境中都非常有效,只是查看通知在生产环境中不起作用。是因为服务器吗?@DanielRoseman。。我已经更新了这个问题。。如果可以帮助meRemove
except:pass
块,查看它是否引发异常而不是保存异常。