MongoDB фактически хранит миллины даты как int (64), как предписано http://bsonspec.org/#/specification
Однако, это может становится довольно запутанным, когда вы извлекаете даты, поскольку клиентский драйвер будет создавать экземпляр объекта даты с его собственным местным часовым поясом. Драйвер JavaScript в консоли mongo, безусловно, сделает это.
Итак, если вы заботитесь о своих часовых поясах, убедитесь, что знаете, что это должно быть, когда вы вернетесь. Это не должно иметь большого значения для запросов, поскольку оно все равно будет соответствовать одному и тому же int (64), независимо от того, в какой временной зоне находится объект даты (надеюсь). Но я бы определенно делал запросы с объектами фактической даты (не строки), и пусть драйвер делает свое дело.
Когда Вы говорите, что 'Я не имею никакого контроля над представлением, я получаю доступ с Django. Браузер MySQL показывает столбцы там, но никакой первичный ключ'.
я предполагаю, что Вы подразумеваете, что это - таблица прежней версии, и Нельзя добавить или изменить столбцы?
Раз так и действительно нет первичного ключа (даже строка или немеждународный столбец*) тогда, таблица не была настроена очень хорошо, и производительность могла бы хорошо вонять.
Это не имеет значения для Вас все же. Все, в чем Вы нуждаетесь, является столбцом, который, как гарантируют, будет уникален для каждой строки. Набор, что быть 'primary_key = Верно в Вашей модели и Django будет счастливо.
Если действительно существует никакой первичный ключ в представлении, то нет никакого обходного решения.
Django требует, чтобы каждая модель имела точно одно поле primary_key=True
.
Должен был быть автоматически сгенерированный id
поле, когда Вы работали syncdb
(если не будет никакого первичного ключа, определенного в Вашей модели, то Django вставит AutoField
для Вас).
Эта ошибка означает, что Django просит у Вашей базы данных id
поле, но ни один не существует. Можно ли выполнить django manage.py dbshell
и затем DESCRIBE read_only_view;
и отправить ли результат? Это покажет все столбцы, которые находятся в базе данных.
, С другой стороны, можно ли включать образцовое определение, которое Вы исключили? (и подтвердите, что Вы не изменили образцовое определение, так как Вы работали syncdb
?)