Django简单模型方法错误(不支持的操作数类型)

时间:2016-09-14 14:43:16

标签: django python-3.x methods admin

嗨,我正在尝试一个简单的事情,非常有文档记录,在shell中工作但不能在django admin中工作。

我的模特:

class Book(models.Model):
    name = models.CharField(max_length=30)
    loan_start = models.DateField()
    loan_ends = models.DateField()

    def loan_length(self):
        temp1 = self.loan_start
        temp2 = self.loan_ends
        res = temp2-temp1
        return res.days

我的管理员:

class BookAdmin(admin.ModelAdmin):
    list_display = ('name', 'loan_start’, ‘loan_length’, ‘loan_ends’)

如果我在django shell中尝试这种方法,那就完美了:

manage.py shell

from books.models import *

抓一些书:

somebook = Book.objects.get(id=19)

somebook.loan_start

Out[12]: datetime.date(2016, 4, 28)

somebook.loan_ends

Out[13]: datetime.date(2016, 8, 1)

somebook.loan_length()

Out[3]: 95

但如果我尝试在管理员中使用它,我会收到此错误:

Exception Value: unsupported operand type(s) for -: 'NoneType' and 'datetime.date'

我将一个日期减去另一个日期,获得timedelta并返回它。我真的不知道为什么会出现异常错误。

由于

0 个答案:

没有答案