首页 > 解决方案 > Django ORM .values() 无法正常工作

问题描述

此代码不起作用:

analyzer_signs = Sign.objects.filter(is_analyzer_used=True).values('code', 'name')
for analyzer_sign in analyzer_signs:
    print(analyzer_sign)

它什么也不打印(不进入循环)

但是当我删除时.values('code', 'name')- 它的效果更好:

analyzer_signs = Sign.objects.filter(is_analyzer_used=True)
for analyzer_sign in analyzer_signs:
    print(analyzer_sign)

我什至可以从字段codename打印文本。

我不知道发生了什么事。我的队友中没有一个人不这样做。请帮忙!

这是模型代码:

class ShortNameMixin(models.Model):
    short_name = models.TextField(blank=True)

    class Meta:
        abstract = True  #

class CodeMixin(models.Model):
    code = models.CharField(max_length=125)

    class Meta:
        abstract = True

class AbstractBaseItem(common_models.CommonInfoAutoIncrementPK):
    name = models.TextField()
    is_active = models.BooleanField(default=True)

    class Meta:
        abstract = True

    def __str__(self):
        return self.name

class SimpleDirectoryItem(ShortNameMixin, CodeMixin, AbstractBaseItem):

    class Meta:
        abstract = True

class Sign(SimpleDirectoryItem):
    additional_code = models.CharField(max_length=255, null=True, blank=True)
....
    is_analyzer_used = models.BooleanField(default=False)

    alias = 'it-is-allias'

    class Meta:
        db_table = 'signtable'
        unique_together = ('sign_type', 'name',)
        ordering = default_ordering
        default_permissions = ()
        permissions = (.......)

PS:我尝试安装不同的数据库转储,在 Linux Mint(virtualbox)和 Windows 上启动了这个项目 - 仍然无法正常工作!但是我的队友说“它可以在我的机器上运行”......你能猜出问题是什么吗?任何帮助!

标签: djangopython-3.7django-orm

解决方案


推荐阅读