2009-09-07 10 views
6

वहाँ एक रास्ता एक मानक modelform में स्लग क्षेत्रों के लिए Django के व्यवस्थापक साइट में पॉप्यूलेट क्षेत्रों का उपयोग करने का एक ही परिणाम प्राप्त करने के लिएDjango ऑटो स्लग

उत्तर

9

खैर Django खुला है स्रोत, इसलिए यदि आप कुछ व्यवहार को दोहराना चाहते हैं तो आप read the code कर सकते हैं और अपनी पसंद के अनुसार चुन सकते हैं। उदाहरण के लिए, आप देख सकते हैं कि इस तरह contrib.admin उपयोग कुछ के साथ, एक स्क्रिप्ट urlify.js कहा जाता गतिशील slugging करने के लिए उपयोग करता है:

<script type="text/javascript" src="/admin-media/js/urlify.js"></script> 
<script type="text/javascript"> 
document.getElementById("id_title").onkeyup = function() { 
    var e = document.getElementById("id_slug"); 
    if (!e._changed) { e.value = URLify(document.getElementById("id_title").value, 50); } 
} 
</script> 

... जहां अपने व्यवस्थापक मीडिया से पेश किया जाता है पर निश्चित रूप से निर्भर करता है (मेरा "/ admin-media /" से है)

या यदि आप अपने दृश्य में अपनी स्लोगिफाइंग करने में प्रसन्न हैं, तो आप django.template में स्लगिफ़ फ़िल्टर के रूप में उपयोग किए जाने वाले फ़ंक्शन का उपयोग कर सकते हैं: django.template.defaultfilters.slugify

+0

लाने के लिए अप करने की तारीख: * व्यवस्थापक के लिए पथ जावास्क्रिप्ट है '/ स्थिर/व्यवस्थापक/js/urlify.js' या स्थिर साथ टेम्पलेट में टेम्पलेट टैग '{% static 'admin/js/urlify.js'%}' * 'URLify (s, num_chars, allowUnicode) 'अब यूनिकोड के लिए अनुमति देता है, इसलिए आपको' सत्य '/' false' को जोड़ना होगा फ़ंक्शन कॉल को URLify करें। – Chad

+0

इसके अलावा, एक अतिरिक्त स्क्रिप्ट '/ static/admin/js/विक्रेता/xregexp/xregexp.min.js' को शामिल करने की आवश्यकता होगी – Chad

-1
<script type="text/javascript" src="/media/js/urlify.js"></script> 

 

var slug = document.getElementById("id_slug").value; 

document.getElementById("id_name").onkeyup = function() { 
    if (slug == '') { 
     document.getElementById("id_slug").value = URLify(document.getElementById("id_name").value, 50); 
    } 
} 
संबंधित मुद्दे