我在django的该模型:

class JournalsGeneral(models.Model):
    jid = models.AutoField(primary_key=True)
    code = models.CharField("Code", max_length=50)
    name = models.CharField("Name", max_length=2000)
    url = models.URLField("Journal Web Site", max_length=2000, blank=True)
    online = models.BooleanField("Online?")
    active = models.BooleanField("Active?")
    class Meta:
        db_table = u'journals_general'
        verbose_name = "Journal General"
        ordering = ['code']
    def __unicode__(self):
        return self.name

我的问题是,在DB(Postgres的)连接到jid序列的名称并不如预期由Django的journals_general_jid_seq但是它具有不同的名称。

是否有指定的Django必须使用用于AutoField该序列的方法吗?在本文档中我读我无法找到答案。

有帮助吗?

解决方案

我不这么认为,但有一个开放式门票为(有可能是有用的补丁?):

http://code.djangoproject.com/ticket/1946

编辑:

实际上,该链接上方具有从HM具有比贴剂本身更好的解决方案的线程上评论。这个补丁是旧的,我不确定它是否会适用于Django的版本所使用。

其他提示

有关此修补程序在Django什么: http://code.djangoproject.com/ticket/8901 ?而你真的需要序列的名字吗?随着8.2版本,PostgreSQL有RETURNING,你可以在INSERT的使用(和UPDATE和DELETE),可用于获取创建ID:

INSERT INTO foo(bar) VALUES('John') RETURNING id;

我不知道,如果Django的可以处理这个(取一个INSERT-结果),但它是一个很好的事情,也是很好的性能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top