Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Django ORM, MySQL में 0 के रूप में कोई भी डेटाटाइम नहीं डालें

सेप्पो के समाधान पर निर्माण (जो कनेक्शन की कमी के कारण django 1.9.4 के लिए काम नहीं करता था)।

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

तो बस अपने मॉडल में DateTimeField के बजाय ZeroDateTimeField का उपयोग करें।

एक आकर्षण की तरह काम करता है और मुझे ग्राहक को उसके mysql db को ठीक करने के लिए कहना पड़ा;-)

संपादित करें:मैंने स्वचालित रूप से जेनरेट किए गए मॉडल के उपयोग को आसान बनाने के लिए शून्य =सही और रिक्त =सही सेट करने के लिए ओवरराइडिंग कन्स्ट्रक्टर को समाप्त कर दिया। चूंकि यह कुछ के लिए उपयोगी हो सकता है, यह यहाँ है (यह वैकल्पिक और संदिग्ध है):

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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. linux mysql-server mysql_config नहीं ढूँढ सकता

  2. mysql डंप और आयात को तेज करना

  3. PHP/MYSQL प्रति सदस्य केवल एक वोट की इजाजत देता है?

  4. हाइबरनेट जेपीए थ्रेड-सुरक्षित के साथ डीबी एक्सेस कैसे करें?

  5. यदि मेरे पास एकाधिक कॉलम मानों के साथ एक MySQL तालिका है, तो मैं सबसे हालिया प्रविष्टियों में से दो को छोड़कर सभी को कैसे हटा सकता हूं?