इससे पहले कि आप सभी मुझे here और here पर इंगित करें, मेरा थोड़ा अलग है। इसलिए मैंने अपने उत्पादन सर्वर में स्थानांतरित होने के बाद प्रसिद्ध त्रुटि प्राप्त करना शुरू कर दिया।Django फ़िल्टरिंग MySQL चेतावनी
Django/db/बैकेंड/mysql/base.py: 86: चेतावनी: डाटा पंक्ति में स्तंभ 'स्लग' के लिए छोटा कर दिया 1
मैंने सोचा के बाद मैं तय इस googling शुरू हो गया था समस्या। इसे ठीक करने के लिए, मैंने दोनों मॉडलों को 128 विज्ञापन के अधिकतम_लेथेंस के लिए tweaked किया, फिर मिलान करने के लिए SQL तालिकाओं को अद्यतन किया। लेकिन समस्या बनी हुई .. कुछ हद तक आश्वस्त है कि मैंने वास्तव में समस्या को ठीक किया है, मुझे लगा कि मैं उन्हें फ़िल्टर करना शुरू कर दूंगा। तो मेरी लिपि के शीर्ष पर मैंने इसे रखा।
# Get rid of the MySQLdb warnings
import warnings
import MySQLdb
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=MySQLdb.Warning)
और मैंने खुशी से उत्पादन के लिए इसे धक्का दिया। अनुमान लगाओ - आपने अनुमान लगाया कि समस्या बनी रही है। तो अब क्या। मैं जल्दी से विश्वास खो रहा हूं कि मैंने वास्तव में समस्या को ठीक किया है, लेकिन इसकी एक डबल जांच से पता चलता है कि सभी स्लग कॉलम 128 वर्ण लंबे हैं। इसके अलावा, अगर मैं 128 से अधिक लंबा हूं और अभी भी कुछ भी नहीं है तो मैं गलती से गलती कर दूंगा। तो 2 सवाल:
मैं जकड़ना कैसे क्या आपरेशन इस पर चिह्नित करने है सकते हैं। यानी मेरे कोड में ध्वज उठाया जा रहा है?
मैं वास्तव में इन्हें कैसे फ़िल्टर कर सकता हूं? मेरा फिक्स काम नहीं कर रहा है? क्या यह वास्तव में एक MySQLdb चेतावनी या django.db.mysql.base चेतावनी है?
धन्यवाद और खुश Django हैकिंग!
जो लोग संरचना पर प्रश्न पूछना चाहते हैं के लिए ..
CREATE TABLE `people_employee` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`email` varchar(75) DEFAULT NULL,
`location_id` varchar(100) DEFAULT NULL,
`jpeg` longtext,
`first_name` varchar(100) DEFAULT NULL,
`last_name` varchar(100) DEFAULT NULL,
`maildomain` varchar(32) DEFAULT NULL,
`mailserver` varchar(32) DEFAULT NULL,
`mailfile` varchar(64) DEFAULT NULL,
`contractor` tinyint(1) NOT NULL,
`temporary` tinyint(1) NOT NULL,
`formal_name` varchar(100) DEFAULT NULL,
`nickname` varchar(32) DEFAULT NULL,
`cell_phone` varchar(32) DEFAULT NULL,
`office_phone` varchar(32) DEFAULT NULL,
`other_phone` varchar(32) DEFAULT NULL,
`fax` varchar(32) DEFAULT NULL,
`assistant_id` int(11) DEFAULT NULL,
`supervisor_id` int(11) DEFAULT NULL,
`is_supervisor` tinyint(1) NOT NULL,
`department_id` varchar(100) DEFAULT NULL,
`division_id` varchar(100) DEFAULT NULL,
`section_id` varchar(100) DEFAULT NULL,
`job_classification_id` varchar(100) DEFAULT NULL,
`functional_area_id` varchar(100) DEFAULT NULL,
`position_id` varchar(100) DEFAULT NULL,
`notes_url` varchar(200) DEFAULT NULL,
`ldap_active` tinyint(1) NOT NULL,
`notes_active` tinyint(1) NOT NULL,
`created_at` datetime NOT NULL,
`last_update` datetime NOT NULL,
`is_active` tinyint(1) NOT NULL,
`site_id` int(11) NOT NULL,
`slug` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `slug` (`slug`),
KEY `people_employee_location_id` (`location_id`),
KEY `people_employee_assistant_id` (`assistant_id`),
KEY `people_employee_supervisor_id` (`supervisor_id`),
KEY `people_employee_department_id` (`department_id`),
KEY `people_employee_division_id` (`division_id`),
KEY `people_employee_section_id` (`section_id`),
KEY `people_employee_job_classification_id` (`job_classification_id`),
KEY `people_employee_functional_area_id` (`functional_area_id`),
KEY `people_employee_position_id` (`position_id`),
KEY `people_employee_site_id` (`site_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1429 DEFAULT CHARSET=latin1;
और प्रासंगिक models.py।
slug = models.SlugField(max_length=128, editable=False, unique=True)
आशा है कि मदद करता है ..
क्षेत्र (रों) कर रहे हैं इस डेटा से है पाठ सीमाओं लगाया आ सकता है? –
नहीं - मैं सहेजने पर स्लॉग सेट कर रहा हूं। यदि लंबाई है> मैं एक चेतावनी को दबा रहा हूं> 128 (लेकिन यह नहीं है ..)। – rh0dium
क्या आप अपनी तालिका के 'वर्णन' (उत्पादन बॉक्स से) और जिस मॉडल का उपयोग कर रहे हैं उसका आउटपुट पोस्ट कर सकते हैं? –