Причина, по которой вы получаете эту ошибку, заключается в том, что вы используете get_object_or_404
, чтобы получить одну книгу, но проблема в том, что ваш запрос возвращает несколько книг. Обычно это происходит, когда нет уникального ограничения на поле, которое вы используете для поиска книги (т.е. получение объекта по заголовку «Книга джунглей» возвращает две книги с одинаковым названием).
Чтобы исправить это, получите объект, используя поле, которое гарантированно будет уникальным, например, id . Например:
urls.py
path('page-details/<str:book_id>/<str:page_id>/', PageDetailView.as_view(), name='page_details'),
views.py
class PageDetailView(LoginRequiredMixin, generic.View):
def get(self, request, *args, **kwargs):
book = get_object_or_404(id=kwargs['book_id'])
page = get_object_or_404(id=kwargs['page_id'])
[...]
Я рекомендую использовать Разработчика Справочного файла Замка из песка от Codeplex. Можно легко включать и исключить пространства имен, но я не уверен, как пойти об исключении единого класса. Можно установить опцию только генерировать документацию для общественности/защищенных классов, но я не знаю, будет ли это соответствовать сценарию.
Можно также быть нацелены на определенный язык в SHFB, относительно второго вопроса.
Кроме того, можно использовать MAML в SHFB для концептуальной документации, такой как, Вы упоминаете как являющийся в файле документа/PDF. Необходимо смочь использовать Doc2Maml для переместить существующую документацию. Doc2Maml является частью DocProject, но кажется, что Вы смогли выполнять его автономный.
Редактирование в ответ на комментарий:
Направления для SHFB 1.8.0.1. Я не помню точный способ сделать это в 1,7, но я полагаю, что это подобно:
Это - также экран, где Вы вставляете сводки пространства имен.
В дополнение к Замку из песка, как упомянуто выше, я также рекомендовал бы смотреть на FxCop и StyleCop, чтобы помочь удостовериться, Ваш код и документация до стандартов Совместимости с CLS.
У Разработчика справочного файла замка из песка (SHFB) самостоятельно есть .chm файл, где можно найти ответы на вопросы как, "как я могу исключить определенные пространства имен или классы из сгенерированного документа?"
Можно думать, что я знаю ответ, и я придирчив, не говоря Вам.Не верно. Но я просматривал документ вчера вечером и видел запись по этой самой теме.
Я не знаю, почему Вы только не уехали бы в материале C++ и VB; там май в будущем быть кем-то, кто использует язык, который является (очень) не C# с Вашей библиотекой. Язык обычно устанавливаем средством просмотра справки, таким образом, C# devs может проигнорировать синтаксис VB.
Что касается слияния, SHFB имеет механизм для добавления в произвольном HTML в произвольной иерархии. В GUI это здесь:
http://www.freeimagehosting.net/uploads/7de19ea568.jpg
Используя это, Вы могли преобразовать PDF/DOC в HTML и затем просто встроить его в .chm.