удалить строку, созданную django, с помощью PHPPgAdmin?

Используя django, я добавил новую запись в свою таблицу. Теперь я хочу удалить его с помощью PHPPgAdmin (postgresql), но получаю ошибку No unique Identifier for this row. В чем проблема?

django автоматически добавляет первичный ключ с автоинкрементом, поэтому я не могу понять, в чем проблема?

Я прочитал это сообщение, но это не помогло . Если вы внимательно посмотрите на изображение, то увидите, что метка столбца первичного ключа — id, а не pk, как должно быть в django.

введите здесь описание изображения

РЕДАКТИРОВАТЬ: в таблице не видно первичного ключа; введите здесь описание изображения

Но это то, что выполняет django;

python manage.py sql auth

CREATE TABLE "auth_user" (
    "id" serial NOT NULL PRIMARY KEY,
    "password" varchar(128) NOT NULL,
    "last_login" timestamp with time zone NOT NULL,
    "is_superuser" boolean NOT NULL,
    "username" varchar(30) NOT NULL UNIQUE,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) NOT NULL,
    "email" varchar(75) NOT NULL,
    "is_staff" boolean NOT NULL,
    "is_active" boolean NOT NULL,
    "date_joined" timestamp with time zone NOT NULL
)
;

РЕДАКТИРОВАТЬ: скриншот из PHPPgAdmin, показывающий id в качестве первичного ключа введите описание изображения здесь


person eagertoLearn    schedule 24.03.2014    source источник
comment
Судя по скриншоту, я предполагаю, что вы имеете в виду PHPPgAdmin. Если вы используете psql для запуска \d thetablename, что получится? Он показывает PRIMARY KEY ?   -  person Craig Ringer    schedule 25.03.2014
comment
@CraigRinger: посмотрите обновление.   -  person eagertoLearn    schedule 25.03.2014
comment
PRIMARY KEY указывается после столбцов таблицы; проверьте там.   -  person Craig Ringer    schedule 25.03.2014
comment
Я вижу PRIMARY KEY как id   -  person eagertoLearn    schedule 25.03.2014
comment
Скриншот не обновлен, чтобы отразить это, но если это так, похоже, проблема должна быть в PHPPgAdmin. Я никогда не использовал его сам, я просто использую psql, поэтому я не уверен, что посоветовать отсюда.   -  person Craig Ringer    schedule 25.03.2014
comment
@CraigRinger: я обновил снимок экрана.   -  person eagertoLearn    schedule 25.03.2014
comment
Является ли отсутствие уникального идентификатора для этой строки ошибкой Django или PhpPgAdmin?   -  person Craig Ringer    schedule 25.03.2014
comment
В django pk — это псевдоним, который всегда указывает на первичный ключ, независимо от того, называется ли он id или как-то еще; именно поэтому его рекомендуется использовать. Какой именно запрос вы выполняете?   -  person Burhan Khalid    schedule 25.03.2014
comment
@CraigRinger: ошибка возникает в pgAdmin3. Самый первый снимок выше.   -  person eagertoLearn    schedule 25.03.2014
comment
@eagertoLearn Для меня это не похоже на пользовательский интерфейс PgAdmin-III, это похоже на что-то из веб-браузера.   -  person Craig Ringer    schedule 25.03.2014
comment
@BurhanKhalid: когда я пытаюсь удалить строку из pgAdmin3, она не позволяет мне удалить. снимки показывают их.   -  person eagertoLearn    schedule 25.03.2014
comment
@CraigRinger: извините, я имел в виду phpPGAdmin   -  person eagertoLearn    schedule 25.03.2014
comment
Можете ли вы удалить строку из psql? Если это так, это может быть ошибка в phppgadmin (и, пожалуйста, не путайте его с фактическим pgadmin).   -  person Burhan Khalid    schedule 25.03.2014


Ответы (1)


Я думаю, что это ошибка с phpPgAdmin.

У меня возникла аналогичная проблема, и я зашел прямо в psql (используя команду ./manage.py dbshell).

Я попытался удалить указанную строку и получил более полезное сообщение об ошибке, чем сообщение от phpPgAdmin. (В моем случае на эту строку ссылалась другая таблица.)

Я удалил строку, на которую ссылается другая таблица, а затем смог удалить рассматриваемую строку.

person seddonym    schedule 28.10.2015