SORU
8 Mayıs 2009, Cuma


Django nasıl bir sülük oluşturabilirim?

Django bir SlugField oluşturmak için çalışıyorum.

Bu basit bir model oluşturdum:

from django.db import models

class test(models.Model):
    q = models.CharField(max_length=30)
    s = models.SlugField()

Ben o zaman bunu:

>>> from mysite.books.models import test
>>> t=test(q="aa a a a", s="b b b b")
>>> t.s
'b b b b'
>>> t.save()
>>> t.s
'b b b b'
>>>

Bekliyor b-b-b-b ediyordum

CEVAP
8 Mayıs 2009, Cuma


Slugify işlevini kullanmanız gerekir.

>>> from django.template.defaultfilters import slugify
>>> slugify("b b b b")
u'b-b-b-b'
>>>

save yöntem geçersiz kılma slugify otomatik olarak arayabilirsiniz:

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)

Yukarıdaki URL 13 ** q saha düzenlendiğinde değiştirmek için neden olacaktır. Slug yeni bir nesne oluşturduğunuzda: sadece bir kez oluşturmak için tercih olabilir

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)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DanceOn

    DanceOn

    6 Mayıs 2006
  • Elly

    Elly

    3 EKİM 2005
  • Crossover

    Crossover

    18 HAZİRAN 2007