Rodrigo Calderon
Rodrigo Calderon

Reputation: 37

Django set slug in view

can anyone tell me how to set a slug in a view?

I pretend to use name as slug,

def editar_cliente(request, pk):
    detail = database.objects.get(pk=pk)
    name = detail.name
    company = detail.company
    pk = detalle.pk

    return render(request, 'edit_client.html'company': company, 'pk':pk})

Upvotes: 2

Views: 661

Answers (1)

user4426017
user4426017

Reputation: 2000

I would create slug in the model's save method:

from django.utils.text import slugify

class Client(models.Model):
    name = models.CharField(max_length=30)
    slug = models.SlugField(editable=False) # hide from admin

    def save(self):
        if not self.pk:
            self.s = slugify(self.name)

        super(Client, self).save()

But you could use the same approach to set it in view as well:

from django.utils.text import slugify

def editar_cliente(request, pk):
    detail = database.objects.get(pk=pk)
    name = detail.name
    company = detail.company
    pk = detalle.pk
    slug = slugify(name)

    return render(request, 'edit_client.html'company': company, 'pk':pk})

Hope it helps.

Upvotes: 3

Related Questions