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