Можно ли достигнуть нечувствительного к регистру 'уникального' ограничения в Sqlite3 (с Django)?

Согласно Документам YouTube Live Streaming API , формат для scheduledStartTime должен быть в формате ISO 8601:

datetime

. дата и время начала вещания. Значение указывается в формате ISO 8601 (ГГГГ-ММ-ДДЧч: мм: сс.сZ).

blockquote>

Я бы посоветовал вам проверить time zone designator, который вы установили.

Создать дату с часовым поясом

Я не PHP-разработчик, но самое умное, что нужно сделать - это создать дату в правильном часовом поясе, а затем поместить ее в правильный формат. Примерно через пять минут поиска я нашел это.

$tz = 'Europe/London';
$timestamp = time();
$dt = new DateTime("now", new DateTimeZone($tz)); //first argument "must" be a string
$dt->setTimestamp($timestamp); //adjust the object to correct timestamp
echo $dt->format('c');

12
задан Jonathan Leffler 14 February 2009 в 00:59
поделиться

2 ответа

Да это может легко быть сделано путем добавления уникального индекса к таблице со следующей командой:

СОЗДАЙТЕ УНИКАЛЬНЫЙ ИНДЕКС uidxName НА mytable (myfield, СОПОСТАВЛЯЮТ NOCASE),

При необходимости в нечувствительности к регистру для букв nonASCII необходимо будет зарегистрировать собственное СОПОСТАВЛЕНИЕ в командах, подобных следующему:

Следующий пример показывает пользовательское сопоставление что виды “неправильный путь”:

import sqlite3

def collate_reverse(string1, string2):
    return -cmp(string1, string2)

con = sqlite3.connect(":memory:")
con.create_collation("reverse", collate_reverse)

cur = con.cursor()
cur.execute("create table test(x)")
cur.executemany("insert into test(x) values (?)", [("a",), ("b",)])
cur.execute("select x from test order by x collate reverse")
for row in cur:
    print row
con.close()

Дополнительная документация Python для sqlite3, показанного здесь

9
ответ дан 2 December 2019 в 21:46
поделиться

Возможно, можно создать и использовать пользовательское образцовое поле; это был бы подкласс CharField, но обеспечение db_type метода, возвращая "текст сопоставляет nocase"

3
ответ дан 2 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: