Объект «Модуль» не вызывается - PullRequest
0 голосов
/ 15 декабря 2011

Я новичок в Python и Django, и у меня возникают проблемы с выполнением математической функции в моем файле model.py.

class Orders(models.Model):
  ...
  total = models.DecimalField(
                              max_digits = 6,
                              decimal_places = 2,
                              null = True,
                              blank = True,
                              )
  ...  


  def shipping(self):
      t = self.total
      ship_rate = 0.12
      return(t*ship_rate)

Когда я вызываю ее в оболочке Python

dat = Orders.object.get(pk=12)
dat.shipping()

Тогда я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\xx\xx\models.py", line 613, in shipping  
ship_rate = 0.12  
TypeError: 'module' object is not callable  

Может кто-нибудь увидеть, что я делаю неправильно?

Ответы [ 3 ]

6 голосов
/ 15 декабря 2011

Ошибка в том, что вы использовали

ship_rate = decimal(0.12)

Это должно быть

ship_rate = decimal.Decimal(0.12)

decimal - это название модуля. Вы не можете вызвать модуль, это то, что говорит сообщение об ошибке. Причина странной обратной связи, которую вы получили, заключается в том, что исходный код модуля и код в памяти не синхронизированы. Когда создается трассировка, используется текущая версия файла, которая может не совпадать с версией кода, который фактически выполняется. Всегда перезагружайте свой веб-сервер, чтобы убедиться, что он использует самую последнюю версию вашего кода.

2 голосов
/ 15 декабря 2011

Похоже на опечатку: менеджер называется objects.

0 голосов
/ 15 декабря 2011

Вы должны создать экземпляр класса order = orders(), затем вы можете вызвать order.shipping()

Соглашение о классе Python также является прописными именами классов Order, а соглашения Django - это единственное имя, поэтому вместо него может быть Orderorders

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...