Django raw sql insert: объект 'str' не имеет атрибута 'items' - PullRequest
1 голос
/ 01 февраля 2012

У меня есть следующая модель:

class test_data_urls(models.Model):
    url = models.CharField(max_length=200, db_index=True)

Я хочу вставить значение в MySQL:

cursor = connection.cursor()
url = "hiya"
cursor.execute("insert into my_table(url) values (%s)", (url))

Я получаю ошибку: У объекта 'str' нет атрибута 'items'

Это работает:

 cursor.execute("insert into my_table(url) values ('test')")

но я хочу сделать это с% s. Для меня это выглядит так же, как я всегда делал это, так чего мне не хватает?

1 Ответ

1 голос
/ 01 февраля 2012

Попробуйте использовать [ и ] вместо ( и ):

cursor = connection.cursor()
url = "hiya"
cursor.execute("insert into my_table(url) values (%s)", [url])

Причина, по которой (url) не работает, заключается в том, что это не кортеж,это одна строка(url,) будет кортежем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...