basandomi sulla soluzione di Seppo (che non funzionava per django 1.9.4 a causa della mancanza di connection.ops.value_to_db_datetime), ho finito per usare un DateTimeField personalizzato come segue:
from django.db import models
class ZeroDateTimeField(models.DateTimeField):
def get_db_prep_value(self, value, connection, prepared=False):
value = super( ZeroDateTimeField, self ).get_db_prep_value( value, connection, prepared )
if value is None:
return "0000-00-00 00:00:00"
return value
Quindi usa ZeroDateTimeField nei tuoi modelli invece di DateTimeField.
funziona come un incantesimo e ho dovuto dire al cliente di sistemare il suo db mysql;-)
EDIT:ho finito per sovrascrivere il costruttore per impostare null=True e blank=True per facilitare l'uso dei modelli generati automaticamente. Poiché questo può essere utile per alcuni, eccolo qui (questo è facoltativo e discutibile):
def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=False, **kwargs):
kwargs['null'] = True
kwargs['blank'] = True
super( ZeroDateTimeField, self ).__init__(verbose_name, name, auto_now, auto_now_add, **kwargs)