1
我在寻找实现以下用例的Django models.py文件的示例数据模型例如:Django的物品的版本集合
- 与可创建的项目列表的页面(一Collection)
- 当Collection被重新排序|被添加到|被删除并保存,Collection的版本号增加1(一个版本)
- 用户可以返回到此Collection的先前版本,比较任何两个版本,并创建新的Collections,这也需要将被版本化
我主要是试图让我的头周围的表关系(我需要多对多的项目,而不是ForeignKey),以及如何自动增加版本号。
下面是一些代码入手:
class Collection(models.Model):
"""A collection of items"""
label = models.CharField(blank=True, max_length=50)
slug = models.SlugField()
class Meta:
verbose_name_plural = "Collections"
def __unicode__(self):
return self.label
class Item(models.Model):
"""An item"""
STATUS_CHOICES = (
(1, "Neutral"),
(2, "Flagged Up"),
(3, "Flagged Down"),
)
title = models.CharField(max_length=100)
slug = models.SlugField()
collection = models.ForeignKey(Collection)
owner = models.ForeignKey(User)
status = models.IntegerField(choices=STATUS_CHOICES, default=1)
created = models.DateTimeField(default=datetime.datetime.now)
modified = models.DateTimeField(default=datetime.datetime.now)
class Meta:
ordering = ['modified']
verbose_name_plural = "Items"
class Version(models.Model):
"""The version of a collection"""
collection = models.ForeignKey(Collection)
version_number = "??? how to auto increment, or do you I just use the primary key/auto field ???"
class Meta:
verbose_name_plural = "Versions"
def __unicode__(self):
return self.label
django-revisions看起来不错,尽管文档相当稀少。我会试着让代码工作,如果成功返回接受这个答案,以及代码示例。干杯! – sgriffee