【发布时间】:2013-07-21 18:30:33
【问题描述】:
我想知道是否有一种方法可以将 datetime auto_now_add=True 列添加到 manytomany 字段。 我有以下型号。
class Photographer(models.Model):
user = models.OneToOneField(User, primary_key=True)
bio = models.CharField(max_length=140, blank=True)
favorites = models.ManyToManyField('Photo', through='Favorites', related_name = 'photographer_favs')
likes = models.ManyToManyField('Photo', related_name='likedby', blank=True)
在我的 postgresql 数据库中,我有一个名为“djangoapp_photographer_likes”的单独表。
在这张表中,我有三列:
id photographer_id photo_id
[PK] serial integer integer
1 3 6
2 3 7
3 3 8
在投入制作几个月后,我意识到我需要知道我们喜欢这些照片的日期时间。因此,我将有四列而不是三列:
id photographer_id photo_id liked
[PK] serial integer integer timestamp with time zone
1 3 6 2013-07-10 23:30:19.559463+00
2 3 7 2013-07-11 17:00:53.39614+00
3 3 8 2013-07-11 17:25:28.4953+00
即使模型中没有这个额外的列,是否可以添加它?我想要它,以便每次喜欢一张图片时,都会记录它被点赞的时间。如果这不可能,我应该考虑哪些其他解决方法?
编辑
这是我的照片模型:
class Photo(models.Model):
title = models.CharField(max_length=40, blank=True)
photographer = models.ForeignKey(Photographer, related_name = 'shot_owner')
postTime = models.DateTimeField(auto_now_add=True)
description = models.CharField(max_length=255, blank=True)
url = models.CharField(max_length=128)
【问题讨论】:
-
关系表(解决两个实体表之间的多对多关系)具有属性是很常见的。我们只想确保属性是关系的属性,而不是实体之一,或者本身不是实体。
标签: python django postgresql datetime django-models