Django模型属性

惠比

当我尝试运行以下代码时,Django表示:“未定义名称'cards'。”

class CardSet(models.Model):

    cards = Card.objects.all()

    def show_card(self):

        for card in cards:
            print(card)

但是,如果我将这样的代码放进去,它就可以工作。

class CardSet(models.Model):

    def show_card(self):

        cards  = Card.objects.all()
        for card in cards :
            print(card)

你能为我解释一下吗?谢谢!

路易斯·马苏埃利(Luis Masuelli)

如果这是您的代码(而不是至少有一个语法错误的已发布代码):

class CardSet(models.Model):
    cards = Card.objects.all()
    def show_card(self):
        for card in cards:
            print(card)

这个有很多问题:

  1. 您将只使用Card.objects.all()一个many2many字段。有关更多详细信息,请参阅文档。否则,您的方法将不适合作为实例方法。
  2. 方法中的循环没有类的范围,因为该范围仅在定义类时才存在(在加载时发生,而不是在方法调用时发生)。
  3. 您涉及的方法self可能是您想要的引用self.cards而不是cards

建议的代码:

class CardSet(modelsModel):
    cards = models.ManyToManyField(Card)
    def show_cards(self):
        for card in self.cards.all():
            print(card)

OTOH ifcards仅仅是一个类范围的查询集,而不是m2m关系...

class CardSet(modelsModel):
    cards = Card.objects.all()
    def show_cards(self):
        for card in self.cards:
            print(card)

解决方案本质上是相同的:add self

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django测试模型属性

来自分类Dev

Django测试模型属性

来自分类Dev

遍历Django模型属性

来自分类Dev

抽象的Django模型没有“模型”属性?

来自分类Dev

Django模型中的派生属性

来自分类Dev

Django动态访问模型属性

来自分类Dev

Django模型中的属性数

来自分类Dev

Django视图/模型属性错误

来自分类Dev

Django 找不到模型属性

来自分类Dev

Django模型的类属性和实例属性?

来自分类Dev

Django模型-在JSON中添加属性

来自分类Dev

以表格形式加载动态模型属性-Django

来自分类Dev

使用属性修改模型字段Django

来自分类Dev

Django 1.7-修改模型的属性

来自分类Dev

在Django中访问模型字段和属性

来自分类Dev

django-imagekit获取模型属性

来自分类Dev

获取Django中模型的属性类型

来自分类Dev

Django在模型中“无法设置属性”

来自分类Dev

factoryboy不覆盖Django模型属性

来自分类Dev

使用QuerySet的Django模型中的计算属性

来自分类Dev

获得Django模型属性的完整而准确的定义

来自分类Dev

如何从Django模型获取属性值

来自分类Dev

Django-sqlite-从模型中删除属性

来自分类Dev

Django模型外键获取属性

来自分类Dev

Django模型外键中的属性错误

来自分类Dev

在Django中查询相关的模型属性

来自分类Dev

访问作为参数传递的Django模型属性

来自分类Dev

如何使用模型属性验证Django表单?

来自分类Dev

Django 1.7-修改模型的属性