Django

Code

Changeset 3115

Show
Ignore:
Timestamp:
06/08/06 10:14:06 (2 years ago)
Author:
mtredinnick
Message:

Fixed #2108 -- allow saving of empty models, rather than just dropping them.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/ado_mssql/base.py

    r3073 r3115  
    132132    return "DROP CONSTRAINT" 
    133133 
     134def get_pk_default_value(): 
     135    return "DEFAULT" 
     136 
    134137OPERATOR_MAPPING = { 
    135138    'exact': '= %s', 
  • django/trunk/django/db/backends/mysql/base.py

    r3073 r3115  
    159159    return "DROP FOREIGN KEY" 
    160160 
     161def get_pk_default_value(): 
     162    return "DEFAULT" 
     163 
    161164OPERATOR_MAPPING = { 
    162165    'exact': '= %s', 
  • django/trunk/django/db/backends/oracle/base.py

    r3073 r3115  
    115115    return "DROP FOREIGN KEY" 
    116116 
     117def get_pk_default_value(): 
     118    return "DEFAULT" 
     119 
    117120OPERATOR_MAPPING = { 
    118121    'exact': '= %s', 
  • django/trunk/django/db/backends/postgresql/base.py

    r3073 r3115  
    109109    return "DROP CONSTRAINT" 
    110110 
     111def get_pk_default_value(): 
     112    return "DEFAULT" 
     113 
    111114# Register these custom typecasts, because Django expects dates/times to be 
    112115# in Python's native (standard-library) datetime/time format, whereas psycopg 
  • django/trunk/django/db/backends/postgresql_psycopg2/base.py

    r3073 r3115  
    115115    return "DROP CONSTRAINT" 
    116116 
     117def get_pk_default_value(): 
     118    return "DEFAULT" 
     119 
    117120OPERATOR_MAPPING = { 
    118121    'exact': '= %s', 
  • django/trunk/django/db/backends/sqlite3/base.py

    r3073 r3115  
    131131    return "" 
    132132 
     133def get_pk_default_value(): 
     134    return "NULL" 
     135 
    133136def _sqlite_date_trunc(lookup_type, dt): 
    134137    try: 
  • django/trunk/django/db/models/base.py

    r3104 r3115  
    190190                if self._meta.has_auto_field and not pk_set: 
    191191                    setattr(self, self._meta.pk.attname, backend.get_last_insert_id(cursor, self._meta.db_table, self._meta.pk.column)) 
     192            else: 
     193                # Create a new record with defaults for everything. 
     194                cursor.execute("INSERT INTO %s (%s) VALUES (%s)" % 
     195                    (backend.quote_name(self._meta.db_table),  
     196                     backend.quote_name(self._meta.pk.column), 
     197                     backend.get_pk_default_value())) 
    192198        transaction.commit_unless_managed() 
    193199