Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django在两个不同的视图中生成类的实例不起作用_Python_Django_Class - Fatal编程技术网

Python Django在两个不同的视图中生成类的实例不起作用

Python Django在两个不同的视图中生成类的实例不起作用,python,django,class,Python,Django,Class,我正在尝试创建一个名为Alert的类的实例,这样我就可以通过循环我创建的每个实例在模板中显示警报 因此,我有一个简单的警报类,如下所示: 警报级别: class Employee(models.Model): owner = models.ForeignKey(User,to_field = 'username', on_delete = models.CASCADE,null = True) name = models.CharField(max_length= 255)

我正在尝试创建一个名为Alert的类的实例,这样我就可以通过循环我创建的每个实例在模板中显示警报

因此,我有一个简单的警报类,如下所示:

警报级别:

class Employee(models.Model):
    owner = models.ForeignKey(User,to_field = 'username', on_delete = models.CASCADE,null = True)
    name = models.CharField(max_length= 255)

    class Meta:
        ordering = ['-id']
        unique_together = ['name','owner']


    def __str__(self):
        return self.name
class警报():
定义初始化(自身、级别、内容):
self.level=level
self.content=内容
我有一个员工模型来展示他们的一些数据

模范员工:

class Employee(models.Model):
    owner = models.ForeignKey(User,to_field = 'username', on_delete = models.CASCADE,null = True)
    name = models.CharField(max_length= 255)

    class Meta:
        ordering = ['-id']
        unique_together = ['name','owner']


    def __str__(self):
        return self.name
我有以下两种看法:

查看添加员工:

class Employee(models.Model):
    owner = models.ForeignKey(User,to_field = 'username', on_delete = models.CASCADE,null = True)
    name = models.CharField(max_length= 255)

    class Meta:
        ordering = ['-id']
        unique_together = ['name','owner']


    def __str__(self):
        return self.name
@login\u必需(重定向\u字段\u名称='/login',登录\u url='/login')
def添加_员工(请求):
如果request.method==“POST”:
尝试:
name=request.POST['name']
query=Employee(name=name,owner=request.user)
query.save()
返回重定向(“main:somepage”)
除:
实例=警报(级别='error',内容='此用户名已存在于您的员工列表中!')
返回重定向(“main:somepage”)
这是我的第二个观点:

查看删除员工:

class Employee(models.Model):
    owner = models.ForeignKey(User,to_field = 'username', on_delete = models.CASCADE,null = True)
    name = models.CharField(max_length= 255)

    class Meta:
        ordering = ['-id']
        unique_together = ['name','owner']


    def __str__(self):
        return self.name
@login\u必需(重定向\u字段\u名称='/login',登录\u url='/login')
def delete_员工(请求):
如果request.method==“POST”:
query=Employee.objects.filter(owner=request.user,name=request.POST['name'])
如果len(query)==1:
query.delete()
instance2=警报(级别为'success',内容为'Successfully Deleted!')
返回重定向(“main:main\u manage”)
现在,这些视图在我的模板用户请求添加或删除时被调用一次

除此之外,我还有一个大致的看法, 这是我重定向到“main:somepage”的页面视图

这是它的样子

呈现员工页面:

class Employee(models.Model):
    owner = models.ForeignKey(User,to_field = 'username', on_delete = models.CASCADE,null = True)
    name = models.CharField(max_length= 255)

    class Meta:
        ordering = ['-id']
        unique_together = ['name','owner']


    def __str__(self):
        return self.name
@login\u必需(重定向\u字段\u名称='/login',登录\u url='/login')
def视图_员工(请求):
employees=Employee.objects.filter(所有者=request.user)
警报=获取所有实例(警报)
返回呈现(请求,模板名称=r'main/manage.html',上下文={'employees':employees,
“警报”:警报})
不幸的是,addemployeeexception警报实例工作正常,并在重定向时显示警报实例。 但是,当我在删除员工视图中执行相同的步骤时,什么也不会发生

我不知道为什么。 在两个不同的视图中创建了两个实例,其中一个保存在警报实例中,另一个不保存在警报实例中

这是最重要的,下面是我的获取所有\u实例函数的外观:

导入gc
def get_所有_实例(属于_类):
_实例=[]
对于gc.get_objects()中的obj:
如果存在(obj,属于_类):
_instances.append(obj)
返回\u实例
我试着调试并找出可能的区别,但我没有想出任何想法

任何帮助都将不胜感激

不认为有必要,但这是我的员工代码模板页面:


{警报中警报的百分比%}
有警报{{alert.content}
{%endfor%}

可能是“如果len(查询)==1”的条件不满足。检查查询是否存在。我现在查看并删除了条件。发生的情况是删除发生了,但警报仍然没有弹出