I am using sphinx and trying to create documentation for my Django project. I decided to try to document the models first, so in my .rst file I did this
wdland\.models ============== .. automodule:: wdland.models :members: :undoc-members: :show-inheritance:
But get the following errors
WARNING: /home/fabou/wdlandenvpy3/source/docs/wdland.rst:9: (WARNING/2) autodoc: failed to import module 'wdland.models'; the following exception was raised: Traceback (most recent call last): File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 657, in import_object __import__(self.modname) File "/home/fabou/wdlandenvpy3/source/wdland/models.py", line 35, in <module> class Device(models.Model): File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/django/db/models/base.py", line 118, in __new__ "INSTALLED_APPS." % (module, name) RuntimeError: Model class wdland.models.Device doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
After some googling, I found a solution here Django 1.9 app_label resignation warnings see comment from Roman Arseniev on "Jan 11 '16 at 14:54"
I went to my models.py and added a “Meta: app_label class” according to the above message to each class that I had in models.py. This fixed the problem and I was able to create documentation for my models using the sphinx-build script.
Now I wanted to do the same for views.py and did it in my .rst file
wdland\.views ============= .. automodule:: wdland.views :members: :undoc-members: :show-inheritance:
But when compiling, I get this new similar error, and I could not find a solution for it and did not understand the previous fix for the models.
WARNING: /home/fabou/wdlandenvpy3/source/docs/wdland.rst:19: (WARNING/2) autodoc: failed to import module 'wdland.views'; the following exception was raised: Traceback (most recent call last): File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 657, in import_object __import__(self.modname) File "/home/fabou/wdlandenvpy3/source/wdland/views.py", line 2, in <module> from . import views File "/home/fabou/wdlandenvpy3/source/wdland/views.py", line 19, in <module> from .forms import TicketForm, TicketAmendForm File "/home/fabou/wdlandenvpy3/source/wdland/forms.py", line 1, in <module> from django.contrib.auth.forms import AuthenticationForm File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/django/contrib/auth/forms.py", line 12, in <module> from django.contrib.auth.models import User File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/django/contrib/auth/models.py", line 6, in <module> from django.contrib.contenttypes.models import ContentType File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/django/contrib/contenttypes/models.py", line 139, in <module> class ContentType(models.Model): File "/home/fabou/wdlandenvpy3/lib/python3.5/site-packages/django/db/models/base.py", line 118, in __new__ "INSTALLED_APPS." % (module, name) RuntimeError: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Here is the corresponding sphinx configuration
#!/usr/bin/env python3
wdland is the Django application specified in my INSTALLED_APPS file in the settings file. The sphinx document folder is at the same level as the wdland folder.
Reading such threads in a topic seems to indicate modules that are not yet loaded on invocation. I don’t know how to fix it, how not to test either in the Sphinx or in Django. Any idea on how I can fix this?
Attempting to document urls.py will result in similar errors.
EDIT: Here is the beginning of my view.py
import datetime from django.core.urlresolvers import reverse from django.db.models import Q from django.http import Http404, HttpResponse from django.template.loader import render_to_string from django.shortcuts import render, HttpResponseRedirect from django.views import generic from random import randint from script.serversnmp import get_ubuntu_snmp, get_esxi_snmp from script.wdlandtools import get_monthly_sess_hour_stats,\ get_monthly_sess_nb_stats,\ get_monthly_ticket_stats,\ get_ticket_category_stats,\ clean_usersession_tbl, update_usertotals_tbl,\ send_email_notification, get_adsl_usage from wdland.models import Device, UserSession, SupportTicket, News, UserTotals,\ SavedUsrSess from .forms import TicketForm, TicketAmendForm from jchart import Chart from jchart.config import Axes, DataSet, rgba