Как изменить формат ввода времени в административном интерфейсе? - Python
Формулировка задачи:
Здравствуйте.
Я совсем только начал осваивать django и у меня возник вопрос.
Предположим есть модель которая описывает новость.
сtime - это время создания новости. должно оно храниться в unixtime и проставляться автоматически при создании новости.
mtime - время модификации (последней). тоже в unixtime. и тоже автоматом должно проставляться при изменении новости.
ptime - это время публикации новости. хранится оно в unixtime. но живому человеку не удобно ставить даты в unixtime в административном интерфейсе.
Собственно вопрос, как изменить поведение?
Читал про создание своих моделей, но не уверен что именно так надо делать.
Как вообще такие вещи принято реализовывать?
Спасибо.
Листинг программы
- class News(models.Model):
- title = models.CharField(max_length=255)
- lead = models.CharField(max_length=255)
- text = models.TextField()
- status = models.BooleanField()
- ptime = models.BigIntegerField()
- ctime = models.BigIntegerField(editable=False)
- mtime = models.BigIntegerField(editable=False)
- version = models.IntegerField()
О! пришла в голову мысль. Коли уж это всего лиш питонический класс то я могу по сути просто взять и переопределить save.
Но не уверен что это бестпрактик.
Решение задачи: «Как изменить формат ввода времени в административном интерфейсе?»
textual
Листинг программы
- from django.db import models
- from lib.db import mymodels
- class News(models.Model):
- url = models.SlugField(max_length=255, unique=True)
- title = models.CharField(max_length=255)
- lead = models.CharField(max_length=255)
- text = models.TextField()
- ptime = mymodels.UnixTimeField()
- ctime = mymodels.UnixTimeField(editable=False,auto_now_add=True)
- mtime = mymodels.UnixTimeField(editable=False,auto_now=True)
- version = models.IntegerField(default=1, editable=False)
- status = models.BooleanField()
- def __unicode__(self):
- return '%s %s' % (self.title, self.lead)
- def save(self, *args, **kwargs):
- if self.id:
- self.version += 1
- return super(News, self).save(*args, **kwargs)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д