2011-12-21 81 views
0

我有这样一个模型:Django管理

class MyClass(models.Model): 
    source_time = TimestampField() 
    price = models.IntegerField() 
    quantity = models.IntegerField() 

,我想在管理页面,以使这样的date_hierachy:

class MyClassAdmin(admin.ModelAdmin): 
    list_display = ('source_time', 'price', 'quantity') 
    date_hierarchy = 'source_time' 

,但它需要一个DateTime 。 我试图做的日期时间派生的自定义字段,将BigIntegerField转换成DateTimeField字段,但我得到这个错误: “夹缝AttributeError的同时呈现:‘长’对象有没有属性‘年’”

from django.db import models 
from datetime import datetime 
from time import strftime, mktime 
import time 

class TimestampField(models.DateTimeField): 
    __metaclass__ = models.SubfieldBase 
    def __init__(self, null = False, **kwargs): 
     super(TimestampField, self).__init__(**kwargs) 

    def db_type(self, connection): 
     return 'bigint' 

    def to_python(self, value): 
     super(TimestampField, self) 
     try: 
      return datetime.fromtimestamp(float(value)/1000000) 
     except: 
      return value 

新的自定义字段不应该像DateTimeField一样运行吗? 如何使表date_hierarchy工作,如果我有一个BigInteger字段在表中?

回答

0

您可以根据现有的代码编写新的date_hierarchy。请参阅文件:django/contrib/admin/templatetags/admin_list.py,第235行。

+0

如何为单个ModelAdmin重写'def date_hierarchy(cl):'? – d3vid 2016-06-24 14:32:20