Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django从管理面板添加新条目_Python_Django - Fatal编程技术网

Python Django从管理面板添加新条目

Python Django从管理面板添加新条目,python,django,Python,Django,我正试图使用Django中的管理面板添加一个新条目 问题是,我已经用200条记录填充了我的数据库,如果我尝试从admin添加一个新条目,我会得到一个重复的key error msg,每当我再次尝试该过程时,它都会不断增加 错误: admin.py: admin.site.register(Entry) 型号: class Entry(models.Model): title = models.CharField(max_length=255) url = models.Text

我正试图使用Django中的管理面板添加一个新条目 问题是,我已经用200条记录填充了我的数据库,如果我尝试从admin添加一个新条目,我会得到一个重复的key error msg,每当我再次尝试该过程时,它都会不断增加 错误:

admin.py:

admin.site.register(Entry)
型号:

class Entry(models.Model):
    title = models.CharField(max_length=255)
    url = models.TextField(max_length=255)
    img = models.CharField(max_length=255)

    def __unicode__(self):
        return self.title

如果使用Django创建数据库表,则在Django外部导入数据时,很可能没有更新自动增量值

也可能是在导入数据时,没有为200条记录提供各自的唯一主键。我认为(某些版本的)SQLite有时会允许大规模导入

MySQL 例如,我在Sequel Pro中查看一个MySQL表,它的“auto_increment”值为144。这意味着下一个主键值将是144

您可以使用以下方法查看表(在MySQL中)的此值:

将“databaseName”替换为Django数据库的名称。其他数据库软件可能有不同的语法

您可以使用以下方法设置下一个自动增量值(在MySQL中):

再次用数据库名称替换databaseName;和以前一样,语法可能因您使用的数据库软件而异

如果这没有帮助,您可能会发现显示表格的状态并将其复制到您的问题中很有用。这也可能有助于跟踪问题:

SHOW CREATE TABLE databaseName.entry
博士后 在Postgres中,可以使用以下方法获取自动递增变量(在Postgres中称为序列)的当前值:

SELECT last_value FROM app_entry_pkey;
ALTER SEQUENCE app_entry_pkey RESTART WITH ###
您可能会使用以下内容将其设置为新值:

SELECT last_value FROM app_entry_pkey;
ALTER SEQUENCE app_entry_pkey RESTART WITH ###

不过请注意,我手头没有一个Postgres数据库来测试这些。您还可能发现以下命令很有用:

SELECT MAX(id) FROM entry
SELECT nextval('app_entry_pkey')

后者通常应该比前者大,并且注意“id”是“entry”模型表中列的名称;在你的桌子上可能会不一样。有关更多信息,请参阅。

此处没有足够的信息来诊断问题。如果管理员工作正常,如果您没有用200条记录预先填充数据库,那么这可能与您这样做的方式有关。。你能检查一下数据吗。。另外,将模型粘贴到此处如果我试图从admin创建一个新条目,但数据库中没有数据,它工作正常我忘了说我的数据库是postgresqlYes,我应该从约束标题中猜出来。那么,在你的例子中,自动增量值是“序列”的一部分。好的,我将尝试一下,稍后我会给出一个答案
SELECT setval('app_entry_pkey', ###)
SELECT MAX(id) FROM entry
SELECT nextval('app_entry_pkey')