2016-02-29 2 views
-2

У меня есть этот пример:Как вызвать специальный метод с аргументами в models.py от views.py

class MyModel(models.Model): 
    # Some fields... 
    price = models.FloatField() 

    def calculate(self, number): 
     return self.price * number 

В воззрениях:

def whatever(request, any_number): 
    m = MyModel.objects.all() 
    c = m.calculate(any_number) 

    # More code... 

Это очень простой пример, потому что я хотите сделать что-то подобное, так как я могу это сделать?

Спасибо!

+1

В несвязанной комментарий, вы, вероятно, хотите использовать DecimalField вместо FloatField для сохранения цен. – krs

ответ

1

Вы должны сделать это в for цикле, так как m массив объектов:

for item in m: 
    result = item.calculate(any_number) 
    # do some stuff with the result 
+1

Это или определить метод в пользовательском менеджере. https://docs.djangoproject.com/en/1.9/topics/db/managers/ – Wtower

+0

Хорошо, я попробую так, спасибо! – hectorlr22

+0

Да, вы правы! Спасибо огромное! – hectorlr22