Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 Shell和Django Web应用程序给出了不同的结果_Python_Django - Fatal编程技术网

Python Django Shell和Django Web应用程序给出了不同的结果

Python Django Shell和Django Web应用程序给出了不同的结果,python,django,Python,Django,我有一个django应用程序,它一直工作正常,突然间有些东西好像坏了 class ClosedUserGroup(models.Model): """ Preset definitions for ClosedUserGroup: """ is_active = models.BooleanField(default=True) is_deleted = models.BooleanField(default=False) created_at = mod

我有一个django应用程序,它一直工作正常,突然间有些东西好像坏了

class ClosedUserGroup(models.Model):
    """ Preset definitions for ClosedUserGroup:
    """
    is_active = models.BooleanField(default=True)
    is_deleted = models.BooleanField(default=False)
    created_at = models.DateTimeField(
        auto_now=True,
        auto_now_add=True,
        null=True,
        default='2013-08-15 13:37:13.370030'
    )
    name = models.CharField(max_length=256, default='<MISSING:CUG_NAME')
    description = models.CharField(max_length=256)


class Partner(models.Model):
    id = models.IntegerField(primary_key=True)
    is_active = models.BooleanField(default=True)
    is_deleted = models.BooleanField(default=False)
    created_at = models.DateTimeField(
        auto_now=True,
        auto_now_add=True,
        null=True,
        default=datetime.datetime.now()
    )
    name = models.CharField(max_length=256, default='<MISSING:PARTNERNAME>')

class PartnerCug(models.Model):
    """ Partner to ClosedUserGroup relation
    """
    is_active = models.BooleanField(default=True)
    is_deleted = models.BooleanField(default=False)
    created_at = models.DateTimeField(
        auto_now=True,
        auto_now_add=True,
        null=True,
        default='2013-08-15 13:37:13.370030'
    )
    partner = models.ForeignKey(Partner)
    cug = models.ForeignKey(ClosedUserGroup)        

class Account(models.Model):
    """
        Account:
        TODO:DESCRIPTION
    """
    id = models.IntegerField(primary_key=True)
    is_active = models.BooleanField(default=True)
    is_deleted = models.BooleanField(default=False)
    created_at = models.DateTimeField(
        auto_now=True,
        auto_now_add=True,
        null=True,
        default=datetime.datetime.now()
    )
    number = models.CharField(max_length=64)
    submitted_by = models.ForeignKey(
        Partner,
        db_column='submitted_by'
    )       
然而,在django本身中,我有这个函数

def get_other_accounts():
    """get total accounts"""
    account_object = Account.objects.filter(id=1)
    total_accounts = account_object.filter(account__submitted_by__partnercug__cug=3).count() 

但是,此操作失败,错误为
数据库错误:当前事务被中止,在事务块结束之前忽略命令,并指向该函数中的最后一行。因此,它的django shell正在工作,但不是来自web应用程序。

缺少
id
pk
字段(主键)在
ClosedUserGroup
模型上


我看不出这在shell或web中是如何工作的。

退出shell后尝试过吗?看看这两个过滤器中得到了什么,没有什么不同吗?您知道,在shell中,您正在计算
PartnerCug
对象,在Django函数中,您正在计算
ClosedUserGroup
(cug)对象,不管是什么?第一个查询由\uuuu partnercug提交
account\uu,第二个查询由\uu partnercug提交
account\uu__cug@FallenAngel我已经编辑过了。那是个打字错误。错误仍然存在模型没有,但装置有,因此在数据库中主ID存在。然后将其添加到模型中?Django不应该知道任何数据库列不是由
字段描述的,它们只会导致问题
def get_other_accounts():
    """get total accounts"""
    account_object = Account.objects.filter(id=1)
    total_accounts = account_object.filter(account__submitted_by__partnercug__cug=3).count()