繁体   English   中英

在Django中调用模型的字段

[英]calling a field of a models in django

我有一个模型类。

class A(models.Model):
    first = models.CharField(max_length=256)

    def any_func(self):
        string = 'first'
        return self.string

现在,如果我调用此函数,它将显示一个错误

A没有任何字段字符串

如何清除或纠正此错误

您需要使用getattr

getattr(...)

 `getattr(object, name[, default]) -> value` Get a named attribute from an object; `getattr(x, 'y')` is equivalent to `xy`. When a default argument is given, it is returned when the attribute doesn't exist; without it, an exception is raised in that case. 

这是一个例子:

>>> class A(object):
...     def __init__(self, foo):
...         self.bar = foo
...     def get_stuff(self, stuff):
...         return getattr(self, stuff, 'Not Found')
...
>>> i = A('hello')
>>> i.get_stuff('zoo')
'Not Found'
>>> i.get_stuff('bar')
'hello'

getattr将接受一个字符串,并且如果它是对象的一个​​属性,它将返回该属性(就像您做了i.something )。 第三个参数是默认值,如果未找到任何内容,则应返回该默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM