Django:覆盖模型的ID

时间:2014-04-12 06:07:03

标签: python django

我有一个基本问题,我认为答案应该是显而易见的,但我自己也找不到。这是我的模特:

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)

假设有3个具有此类ID的主题对象实例:

1 2 3

当我delete()第三个实例并尝试创建一个新实例时,Django会提供一个ID为' 4'到最后一个例子,但我想测量所有当前主题的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

创建它

1 个答案:

答案 0 :(得分:1)

你的app逻辑肯定不需要这个。假设您可以解析模板的HTML,增加找到的值,并期望使用此ID在数据库中查找某些内容,那么您犯了一个错误。不要试图对数据库进行微观管理来处理这个问题,而是让我们回顾你的决定并考虑另一种选择。

动态创建主题时,请按以下方式执行:

  1. 使用新的主题信息对服务器进行AJAX调用。
  2. 让视图处理AJAX调用并创建视图,并使用新创建的pk进行响应。
  3. 使用您重新加入的pk动态生成网址,大概是JSON