Django 1.11.7:如何在视图中调用Class方法?

时间:2017-11-17 18:45:40

标签: python django class

在我的models.py中,我有一个类(路径),其方法 validate_time 试图访问路径模型的两个字段(time_start,time_end):

class Paths(m.Model):

  time_start: m.TimeField()
  time_end: m.TimeField() 

  def validate_time(self):
     start = self.time_start
     end = self.time_end
     print start #print start to test it out
     #...some function that returns True or False

我在views.py中调用 validate_time

from .models import Paths

def paths_data(request):
  ps = Paths()
  valid_times = ps.validate_time()
  if valid_times == False:
     ....

我看到方法validate_time被命中,因为我看到了print语句

但是打印输出似乎是:

time_start time_end 已作为字符串保存到模型中。如何在 validate_time 中将它们作为字符串值?

2 个答案:

答案 0 :(得分:0)

我认为self.time_start可能没有被设置为ps是一个空的Path对象,由' ps = Paths()'初始化。和time_start没有默认值。 如果要查找已保存的实例,则需要首先使用Paths.objects.get(your_key = your_value)查询数据库。有关查询的更多详细信息:https://docs.djangoproject.com/en/1.11/topics/db/queries/

答案 1 :(得分:-1)

您可以使用@ classmethod或@ staticmethod装饰器validate_time