Как работает постоянная ссылка? - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть следующий код в моем файле models.py, и мне интересно, как он используется в urls.py/rest среды django.Какие преимущества это дает мне?

    @models.permalink
    def get_absolute_url(self):
        return('catalog_category',(), {'category_slug':self.slug})

Как мне использовать этот метод?

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Это может быть использовано для возврата URL с вашим текущим объектом. Если у вас есть модель и URL, связанные с вашим @ models.permalink.

Примером может быть что-то вроде этого {% for offer in offers %} {{offer.title}} {{offer.get_absolute_url}}

В файле urls.py просмотрите ваши связанные имена, там должен быть один, связанный с функцией .get_absolute_url.

Однако, если вы возвращаете несколько URL-адресов, используя одни и те же модели, но в разных представлениях, все равно можете использовать get_absolute_url. просто в другом синтаксисе, таком как {% url url_related_name id=id %} id будет в вашем экземпляре, вы бы хотели slug=offer.slug

1 голос
/ 03 ноября 2011

По сути, он используется для того, чтобы не указывать схему URL для модели как в файле urls.py, так и в файле models.py (Django очень DRY ).

Ознакомьтесь с документацией Django на @permalink decorator .

...