आपको slugify फ़ंक्शन का उपयोग करने की आवश्यकता होगी।
>>> from django.template.defaultfilters import slugify
>>> slugify("b b b b")
u'b-b-b-b'
>>>
आप विधि slugify
को ओवरराइड करके स्वचालित रूप से कॉल कर सकते हैं save
:
class Test(models.Model):
q = models.CharField(max_length=30)
s = models.SlugField()
def save(self, *args, **kwargs):
self.s = slugify(self.q)
super(Test, self).save(*args, **kwargs)
ध्यान रखें कि उपरोक्त आपके URL को q
फ़ील्ड संपादित करने पर बदलने का कारण होगा , जो टूटे हुए लिंक का कारण बन सकता है । जब आप कोई नई वस्तु बनाते हैं तो केवल स्लग उत्पन्न करना बेहतर हो सकता है:
class Test(models.Model):
q = models.CharField(max_length=30)
s = models.SlugField()
def save(self, *args, **kwargs):
if not self.id:
# Newly created object, so set slug
self.s = slugify(self.q)
super(Test, self).save(*args, **kwargs)