我在models.py中创建了两个新方法:
def test(self):
return 'Test'
然而,在重新启动apache和wsgi之后,我无法在模板或命令行中使用这些方法。
相反,我得到'模型没有属性' test'
以前有人见过这个问题吗?你是怎么解决的?
class ClientAppointmentMessage(models.Model):
# fields here
class Meta:
ordering = ['-created']
def __unicode__(self):
return self.appointment.creator.name
def get_absolute_url(self):
return '/appointment/{0}'.format(self.appointment.id)
def test(self):
return 'Test'
注意:
模板完全忽略该功能(无错误,无结果)
Shell抛出' ClientAppointmentMessage'没有属性' test'
我已确保将文件上传到正确的目录。
我已经尝试了@ property'方法
我重启了apache和wsgi
shell命令示例:
from path.to.models import ClientAppointment, ClientAppointmentMessage
a = ClientAppointment.objects.get(id=1)
a.test() --> AttributeError: 'ClientAppointment has no attribute 'test''
a = ClientAppointmentMessage.objects.get(id=1)
a.test() --> AttributeError: 'ClientAppointmentMessage' has no attribute 'test'
a = ClientAppointmentMessage()
dir(a) --> shows list of methods, not including 'test' (this occurs both as property and as regular method)
答案 0 :(得分:0)
问题是models.py文件中有混合的空格/制表符。然而,奇怪的是,通常会触发缩进错误。不知道为什么这个没有,但对于一些可能有类似无法解释的问题的人来说,值得检查。