繁体   English   中英

Django:覆盖模型的ID

[英]Django: overwriting model's 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)

可以说有3个具有此类ID的Topic对象实例:

1 2 3

当我delete()第三个实例并尝试创建一个新实例时,Django将最后一个实例的ID设置为“ 4”,但是我想测量所有当前Topic的ID,并给出highest present ID +1的新对象highest present ID +1 ,例如:

主题--- ID

Topic1--1

Topic2--2

Topic3--3

当我删除Topic3(id = 3)并创建新的Topic Topic4时,我希望它的ID为3。

可以通过Django shell来实现,但我不确定该如何覆盖模型的ID创建方法。

创建Topic时,将为当前登录的用户( user = request.user )和当前主题( subject = slug )下创建主题

您的应用逻辑绝对不需要此。 假设您可以解析模板的HTML,增加找到的值并希望在具有此ID的数据库中找到某些东西,这是您的错误。 与其尝试对数据库进行微管理以解决此问题,不如让我们后退决定并考虑替代方法。

动态创建主题时,请按照以下方式进行操作:

  1. 使用新主题的信息对服务器进行AJAX调用。
  2. 有一个视图处理AJAX调用并创建视图,并以其新生成的pk进行响应。
  3. 使用您返回的pk (大概是JSON动态生成URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM