las babosas representadas no son correctas en url django

¿Por qué siempre tengo un extra?%2F en mis URL de babosas generadas?

Todas las babosas se generan correctamente a continuación cuando las imprimo en el terminal, pero no sé por qué la URL tiene el extra%2F

Algo está mal en alguna parte pero parece que no puedo detectarlo

En mi opinión, estoy usando<a href = "{{ group.get_absolute_url }}">... para conseguir la babosa Ahora, esto funciona pero genera el problema anterior. Si lo hagohref = "{% url 'group' group.slug %} esto arroja un error que no puede encontrar una coincidencia inversa.

Ejemplo: el título del grupo esa group la url será../%2Fgroup/a-group/

en urls.py

 (r'^/group/(?P<slug>[-\w\d]+)/

modelo

class BlogGroup(models.Model):

    title = BleachField()
    image = models.ImageField(upload_to="uploads/group_images", default="uploads/group_images/none/none.jpg")
    created = models.DateTimeField(default = datetime.now)
    slug = models.SlugField(unique = True)

    def __str__(self):

        return self.title 

    def get_absolute_url(self):
        return reverse("blog.views.group", kwargs = {'slug':self.slug})

formar

class BlogGroupForm(forms.ModelForm):


    def __init__(self, *args, **kwargs):

        super(BlogGroupForm, self).__init__(*args, **kwargs)
        self.fields["title"].requried = True
        self.fields["image"].required = True
        self.fields["title"].widget = forms.TextInput()

    class Meta:
        model = BlogGroup
        fields = ["title", "image", "slug"]

    def save(self, commit = False):

        instance = super(BlogGroupForm, self).save(commit = False)
        return truncate_slug(instance, BlogGroup)

utils.py

from django.utils.text import slugify
import itertools

def truncate_slug(instance, arg):

    length = arg._meta.get_field('slug').max_length
    instance.slug = original_slug = slugify(instance.title)[:length]

    for x in itertools.count(1):
        if not arg.objects.filter(slug = instance.slug).exists():
            break
        instance.slug = "%s-%d" % (original_slug[:length - len(str(x)) -1], x)
    instance.save()
    return instance
, "group"),

modelo

class BlogGroup(models.Model):

    title = BleachField()
    image = models.ImageField(upload_to="uploads/group_images", default="uploads/group_images/none/none.jpg")
    created = models.DateTimeField(default = datetime.now)
    slug = models.SlugField(unique = True)

    def __str__(self):

        return self.title 

    def get_absolute_url(self):
        return reverse("blog.views.group", kwargs = {'slug':self.slug})

formar

class BlogGroupForm(forms.ModelForm):


    def __init__(self, *args, **kwargs):

        super(BlogGroupForm, self).__init__(*args, **kwargs)
        self.fields["title"].requried = True
        self.fields["image"].required = True
        self.fields["title"].widget = forms.TextInput()

    class Meta:
        model = BlogGroup
        fields = ["title", "image", "slug"]

    def save(self, commit = False):

        instance = super(BlogGroupForm, self).save(commit = False)
        return truncate_slug(instance, BlogGroup)

utils.py

from django.utils.text import slugify
import itertools

def truncate_slug(instance, arg):

    length = arg._meta.get_field('slug').max_length
    instance.slug = original_slug = slugify(instance.title)[:length]

    for x in itertools.count(1):
        if not arg.objects.filter(slug = instance.slug).exists():
            break
        instance.slug = "%s-%d" % (original_slug[:length - len(str(x)) -1], x)
    instance.save()
    return instance

Respuestas a la pregunta(1)

Su respuesta a la pregunta