Mike Slinn
Mike Slinn

Django and Django-Oscar Information Sources

Published 2021-03-27.
Time to read: 3 minutes.

This page is part of the django collection, categorized under Django, Django-Oscar.

This is a list of general information sources and projects for Django and django-oscar that interest me, including supporting projects. I discuss unit testing information sources here.

Code

Online

Tutorials

Standards

PIP Modules

This is a listing of the PIP modules that I am interested in. Many of the django-oscar modules are shown on the Django-oscar GitHub page, but these links are to the PyPi pages, not directly to the GitHub projects.

  • Better-exceptions, pretty and useful exceptions in Python. Here is sample output; notice the value and type of variables is shown (yay!)
    (aw) $ bin/run
    Traceback (most recent call last):
      File "/var/work/django/oscar/lib/python3.8/site-packages/django/apps/config.py", line 156, in create
        app_module = import_module(app_name)
                     │             └ 'aw_order'
                     └ <function import_module at 0x7f858f387550>
      File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
               │                      │    │        │        └ 0
               │                      │    │        └ None
               │                      │    └ 0
               │                      └ 'aw_order'
               └ <module 'importlib._bootstrap' (frozen)>
      File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
      File "<frozen importlib._bootstrap>", line 991, in _find_and_load
      File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
    ModuleNotFoundError: No module named 'aw_order'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "./manage.py", line 22, in <module>
        main()
        └ <function main at 0x7f858f488430>
      File "./manage.py", line 18, in main
        execute_from_command_line(sys.argv)
        │                         └ <module 'sys' (built-in)>
        └ <function execute_from_command_line at 0x7f858e999820>
      File "/var/work/django/oscar/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
        utility.execute()
        └ <django.core.management.ManagementUtility object at 0x7f858f1ac8e0>
      File "/var/work/django/oscar/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
        django.setup()
        └ <module 'django' from '/var/work/django/oscar/lib/python3.8/site-packages/django/__init__.py'>
      File "/var/work/django/oscar/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
        apps.populate(settings.INSTALLED_APPS)
        │             └ <LazySettings "main.settings.dev">
        └ <django.apps.registry.Apps object at 0x7f858f0f6520>
      File "/var/work/django/oscar/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
        app_config = AppConfig.create(entry)
                     │                └ 'order.apps.OrderConfig'
                     └ <class 'django.apps.config.AppConfig'>
      File "/var/work/django/oscar/lib/python3.8/site-packages/django/apps/config.py", line 158, in create
        raise ImproperlyConfigured(
    django.core.exceptions.ImproperlyConfigured: Cannot import 'aw_order'. Check that 'order.apps.OrderConfig.name' is correct. 
  • Cookiecutter-django, a popular git project for learning and working with Django, and a companion book called Two Scoops of Django.
  • Django-allauth, an integrated set of Django applications addressing authentication, registration, account management and 3rd-party social account authentication.
  • Django-cacheback, smart caching with asynchronous refresh for Django.
  • Django-grappelli, a jazzy skin for the Django admin interface. While it installed easily, it is decidedly not jazzy.
  • Django-invitations, a generic invitations solution with adaptable backend and support for django-allauth. All emails and messages are customisable.
  • Django-oscar-accounts, managed double-entry accounts for Django. Can also be used without Oscar.
  • Django-oscar-api, a RESTful API for django-oscar.
  • Django-oscar-bluelight, enhancements and improvements to django-oscar offers and vouchers features.
  • Django-oscar-promotions, an app for dashboard-editable promotional content in django-oscar. GitHub project (PyPi link is broken.) This project was formerly part of the django-oscar core, but was been separated into a standalone app.
  • Django-oscar-stores provides physical store support. Features include a store locator page using Google Maps, store detail pages including opening hours, store grups and a dashboard for messaging stores.
  • Django-oscar-invoices. Very little documentation. PR for Django 4.x not accepted after 6 weeks.
  • Django-pipeline, an asset packaging library for Django.
  • Django-simple-menu, code-based menus for Django applications.
  • Django-summernote integrates the Summernote WYSIWYG HTML editor with Django.
  • Django-tinymce, v5.6 of this WYSIWYG HTML editor is bundled with django-oscar 3.0.
  • Django-waffle, a feature flipper for Django.
  • Pigar, generate requirements for a Python project. I had a problem when attempting to use pigar on a Django project.
  • Pip-tools, command-line tools to keep pip packages fresh, even when they are pinned.
  • Python-twitter, a Python wrapper around the Twitter API.

Payment Gateways

Django Apps

Django-Oscar Apps

  • Django-oscar-paypal, PayPal integration for django-oscar. Can also be used without django-oscar.
  • Celery, a task queue with focus on real-time processing, while also supporting task scheduling. Celery is not specific to Django.
  • Dependabot, maintain a git repository’s dependencies automatically.

Books and Videos