Python 在model.method工作后更改views.py中的变量-Django

Python 在model.method工作后更改views.py中的变量-Django,python,django,Python,Django,各位 我在views.py中有一个全局变量:它是投票用户的列表 我想在我的作者被删除后清空这个列表 我在models.py中有一个Author.delete方法,我可以用它来清空它,但我无法将列表导入models.py views.py voted_list=[] if Author.delete(): voted_list=[] models.py class Author(models.Model): def delete(self, *args, **kwargs):

各位

我在views.py中有一个全局变量:它是投票用户的列表

我想在我的作者被删除后清空这个列表

我在models.py中有一个Author.delete方法,我可以用它来清空它,但我无法将列表导入models.py

views.py

voted_list=[]
if Author.delete():
    voted_list=[]
models.py

class Author(models.Model):
    def delete(self, *args, **kwargs):
        Option.objects.filter(author_id=self.id).update(author_id=None, votes=0)
        super().delete(*args, **kwargs)
或者,我是否可以将我的“删除”方法导入到视图中,例如:

views.py

voted_list=[]
if Author.delete():
    voted_list=[]
编辑 我需要更清楚地回答我的问题。我在视图中有一个方法:def

vote(request, author_id):
    global voted_list
    author = get_object_or_404(Author, pk=author_id)
    a= LogEntry.objects.log_action(
    user_id         = request.user.pk, 
    content_type_id = ContentType.objects.get_for_model(Option).pk,
    object_id       = Option.pk,
    object_repr     = force_text(Option), 
    action_flag     = CHANGE
)
    print("Voted:",a.user_id)
    voted_list.append(User.objects.get(pk=a.user_id))
我只想传递给投票的用户id的模板列表。但删除作者后,请清空它。我不想使用db更改,因为在我当前的状态下,我认为我已经把它们复杂化了


谢谢。

首先,请注意使用全局变量是一种不好的做法

在我看来,你的代码看起来有点奇怪:当你删除一个
作者时(我假设哪个对象是
选项的外键),它会自动将这个
外键字段的值设置为
。因此,手动设置
author\u id=None
感觉不对劲(就像你在做一些不需要的事情)

投票名单与什么有关


我的建议是,为您需要知道投票对象的每个类设置一个名为
authors\u的
ManyToManyField
(例如),并手动添加实际投票给该对象的任何
Author
实例。这样,如果要删除一个
作者
,它将自动从投票支持
作者中删除。这对您来说不是更好的解决方案吗?

我使用LogEntry函数解决了我的问题

首先请不要使用全局列表。通常,Web服务器不应保持(全局)状态。