Я пытаюсь использовать одно представление для разрешения двух шаблонов URL, используя необязательные параметры в определении представления.Я следую рекомендациям этого поста и другого вопроса .
Вот мой код для шаблонов URL urls.py :
urlpatterns = patterns('myapp.views',
url(r'^(?P<slug>[\w-]+)/$', 'my_view', name='main_url'),
url(r'^(?P<slug>[\w-]+)/(?P<optional>[\w-]*)/$', 'my_view', name='optional_url'),
)
И определение представления:
def my_view(request, slug, optional=None):
Все работает отлично, даже если отображаются шаблоны в соответствии с шаблонами URL.Однако, когда я пытаюсь отобразить ссылки, используя постоянные ссылки на модель, они ломаются.Я следую способу получения абсолютного URL модели, как описано в django docs.
Вот код моей модели:
class MyModel(models.Model):
name = models.CharField(max_length=128)
slug = models.CharField(max_length=32)
@models.permalink
def get_absolute_url(self):
return ('main_url', [self.slug])
Проблема в том, что get_absolute_url возвращает URL с двумяаргументы.Итак, я получаю что-то вроде этого domain.com/slug// вместо этого domain.com/slug/
Как я могу получить абсолютный URL без второго аргумента?Что-то я делаю не так?
Спасибо