@Sergey0808

Python Django, как в админке указать секретную ссылку?

В модели новостей есть поле booleanfield, в которой если поставлена галочка генерируется хэш, который является уникальным параметром в урл для отдельной новости, если галочка не стоит или убрать - ссылка удаляется. Это всё работает, но генерируется один хэш. Например такой - c63f96d367536fa10914963237616627. Но мне нужно чтобы генерировался полный адрес - 127.0.0.1:8000/secret/c63f9654d367536fa10914963237... и чтобы в поле модели добавлялся только хэш, а в админке отображался полный адрес. Как это сделать?
  • Вопрос задан
  • 295 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexbog80
django разработчик
Переход по ссылке будет только из админки?
в класс админки можно добавить функцию:
def get_hash_link(self, obj):
    try:
        return mark_safe(u'<a href="/secret/{0}" target="_blank">{0}</a>'.format(obj.hash))
    except:
        return u'Невозможно сформировать ссылку'


и патом вызывать ее
list_display = ['get_hash_link', 'title', 'date' ....]  # из списка,


или из формы
fieldsets = (
        (u'Основные данные', {'fields': (
            'field1',
            'field2',
            'field3',
            'get_hash_link',
            ...
        )}),
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы