Создать URL для исторического объекта Django Simple History

Учитывая модель под названием StuffЯ хочу, чтобы URL HistoricalStuff объект.

Другими словами, как реализовать get_historical_url в приведенном ниже фрагменте кода?

stuff = Stuff.objects.first()
stuff.pk
-> 100
historical_stuff = stuff.history.first()  # we want to get url for this
historical_stuff.pk
-> 1
get_historical_url(historical_stuff)
-> /path/to/admin/stuff/100/history/1

Очевидно, глупым решением было бы использовать строку формата, но я бы предпочел использовать urlresolvers

1 ответ

После долгих размышлений я обнаружил в простом исходном коде истории, что имя URL похоже на имена изменений администратора, а именно admin_%s_%s_simple_history,

С этим знанием get_historical_url похоже

def get_simplehistory_url(history_obj):
    parent_obj = history_obj.history_object
    return urlresolvers.reverse('admin:{}_{}_simple_history'.format(
        parent_obj._meta.app_label, parent_obj._meta.model_name), args=(parent_obj.id, history_obj.pk))
Другие вопросы по тегам