我有一个基本问题,我认为答案应该是显而易见的,但我自己找不到它。这是我的模型:Django:覆盖模型的ID
class Topic(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
subject = models.ForeignKey(Subject)
name = models.TextField(blank=True, null=True, verbose_name=u'')
date = models.DateTimeField(auto_now_add=True)
比方说,有这样的ID的3个主题对象实例:
当我delete()
第三实例,并且尝试创建一个新的,Django为最后一个实例提供了一个“4”ID,但我想测量所有当前主题的ID,并给出新的对象ID highest present ID +1
,例如:
主题--- ID
Topic1--1
Topic2--2
Topic3--3
当我删除Topic3(ID = 3),并创建新的主题Topic4,我想的ID因为它会是3.
它可以通过Django shell来完成,我只是不确定应该如何覆盖模型的ID创建方法。
当我创建Topic
我的用户(user = request.user
),并根据目前的主题创建它当前登录(subject = slug
)
你为什么要这么做?只需让数据库管理ID即可。是否有差距并不重要。 –
这是我的应用程序的业务逻辑所必需的。我使用Jquery和Ajax动态创建对象,像(http://example.com/app/edit/topic/)这样的链接应该是动态的--PK + 1等。 –
Eimantas
使用'PK'的事实在你的URL中,并不以任何方式要求它们是连续的,在你的应用程序中也不存在AJAX。 –