У меня есть модель как:
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.
Я попытался создать настраиваемое поле, полученное из DateTime, которое преобразует BigIntegerField в DateTimeField, но я получил эту ошибку:
"Caught AttributeError при рендеринге: у объекта 'long' нет атрибута 'year'"
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?