Domain-driven e-commerce for Django

Overview
https://github.com/django-oscar/django-oscar/raw/master/docs/images/logos/oscar.png

Domain-driven e-commerce for Django

Oscar is an e-commerce framework for Django designed for building domain-driven sites. It is structured such that any part of the core functionality can be customised to suit the needs of your project. This allows a wide range of e-commerce requirements to be handled, from large-scale B2C sites to complex B2B sites rich in domain-specific business logic.

Contents:

https://github.com/django-oscar/django-oscar/raw/master/docs/images/screenshots/oscarcommerce.thumb.png https://github.com/django-oscar/django-oscar/raw/master/docs/images/screenshots/readthedocs.thumb.png

Further reading:

Continuous integration status:

Coverage Requirements Status

PyPI status:

Docs status:

Documentation Status

Core team:

Supported versions

The currently supported versions of Oscar are:

Version End of support
3.0 April 2021
2.1 LTS August 2023

Supported verions are eligible for fixes for data loss bugs and security issues. Releases designated as Long-term support (LTS) releases will receive support for an extended period of 3 years from their release date.

Screenshots

Sandbox

These are screenshots from the 'sandbox' example site that ships with Oscar. It sports a simple design built with Twitter's Bootstrap and provides a good starting point for rapidly building elegant e-commerce sites.

https://github.com/django-oscar/django-oscar/raw/master/docs/images/screenshots/browse.thumb.png https://github.com/django-oscar/django-oscar/raw/master/docs/images/screenshots/detail.thumb.png https://github.com/django-oscar/django-oscar/raw/master/docs/images/screenshots/basket.thumb.png https://github.com/django-oscar/django-oscar/raw/master/docs/images/screenshots/dashboard.thumb.png

The sandbox site is also available to browse at https://latest.oscarcommerce.com.

The sandbox site can be set-up locally in 5 commands. Want to make changes? Check out the contributing guidelines.

Extensions

The following extensions are stable and ready for use:

The following are community-written extensions:

Let us know if you're writing a new one!

Videos

Videos with talks about Oscar:

License

Oscar is released under the permissive New BSD license (see summary).

Case studies

Oscar is still in active development but is used in production by a range of companies, from large multinationals to small, boutique stores. See http://oscarcommerce.com/cases.html for an overview.

Many more on the way. If you use Oscar in production, please let us know.

Looking for commercial support?

If you are interested in having an Oscar project built for you, or for development of an existing Oscar site then please get in touch via [email protected].

Comments
  • get_model cannot load catalogue.Product

    get_model cannot load catalogue.Product

    For this code:

    from oscar.core.loading import get_model
    get_model('catalogue', 'Product')
    

    I get the following traceback

    Traceback (most recent call last):
      File "trigger_bug.py", line 2, in <module>
        get_model('catalogue', 'Product')
      File "/home/markus/src/django-oscar/oscar/core/loading.py", line 189, in get_model
        model = django_get_model(app_label, model_name, *args, **kwargs)
      File "/home/markus/src/django/django/db/models/loading.py", line 271, in get_model
        self._populate()
      File "/home/markus/src/django/django/db/models/loading.py", line 78, in _populate
        self.load_app(app_name)
      File "/home/markus/src/django/django/db/models/loading.py", line 99, in load_app
        models = import_module('%s.models' % app_name)
      File "/home/markus/src/django/django/utils/importlib.py", line 40, in import_module
        __import__(name)
      File "/home/markus/src/django-oscar/oscar/apps/customer/models.py", line 20, in <module>
        from oscar.apps.customer.history import *  # noqa
      File "/home/markus/src/django-oscar/oscar/apps/customer/history.py", line 9, in <module>
        Product = get_model('catalogue', 'Product')
      File "/home/markus/src/django-oscar/oscar/core/loading.py", line 193, in get_model
        app_label=app_label, model_name=model_name))
    ImportError: catalogue.Product could not be imported.
    

    For a very simple oscar project that has been set up as follows:

    $ django-admin.py startproject thebug
    $ cd thebug
    $ mkdir -p apps/dashboard/catalogue
    $ touch apps{,/dashboard{,/catalogue}}/__init__.py
    $ cat >> thebug/settings.py
    from oscar import get_core_apps
    
    INSTALLED_APPS = [
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'django.contrib.flatpages',
        'south',
        'compressor',
    ] + get_core_apps(['apps.dashboard.catalogue'])
    
    SITE_ID = 1
    
    STATIC_ROOT = 'static'
    
    HAYSTACK_CONNECTIONS = {
        'default': {
            'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
        },
    }
    
    from oscar.defaults import *  # noqa
    ^D
    $ export DJANGO_SETTINGS_MODULE=thebug.settings
    $ cat > trigger_bug.py
    from oscar.core.loading import get_model
    get_model('catalogue', 'Product')
    ^D
    $ python ./trigger_bug.py
    
    opened by mbertheau 41
  • Update dashboard to bootstrap 3

    Update dashboard to bootstrap 3

    Use bootstrap 3 for the dashboard, this is based on the bootstrap3 branch.

    This needs a good review before it is merged, and we might want to remove the bootstrap2 files from the repository.

    TODO (by @mbertheau):

    • [x] remove bootstrap2 files
    • [x] remove bootstrap2 variables for variables.less
    • [ ] test with a real world customized dashboard
    • [x] resolve the partner dashboard issue (3d40611)
    • [x] move customizations in dashboard.less to a separate file that's included in dashboard.less. That way implementations can have their own dashboard.less that includes a bootstrap3 variables.less that is customized and still reuse oscar styles that are now in dashboard.less
    ✍ For review 
    opened by mvantellingen 23
  • is_public field for Products

    is_public field for Products

    This allows to disable a product, without having to delete it. A staff member can still view the product on the website via the dashboard so styling issues or offers can be tested.

    This introduces browsable_dashboard so the user can see disabled products in the dashboard.

    opened by jaroel 21
  • Product Structure and Attributes

    Product Structure and Attributes

    Hi all

    I've now been hard at work implementing our new shop in django oscar. Sadly django-oscar isn't very good at product variations and attributes. I'm considering how to fix this, and would like some input from the community.

    Imo the best and simplest implementation would be to have every product be a variation, even if it's a standalone product. This greatly simplifies working with products all around the framework, and would make product editing in the dashboard more intuitive. You could even change the layout in the dashboard if only a single variation is created.

    I've made a little list of things that the variation system should be able to handle.

    • Variant generation from attributes set in product class
    • No duplicate variants should be allowed
    • Multi inline editing of variants
    • Image on variants (for automatic image switching on product page)

    Regarding Attributes i have some ideas as well. First order of business would be to unify Options and Attributes. It's confusing that these are 2 separate entities. This would entail removing the AbstractOption model, this is already confusing since the only way to add options is through django admin. There should be a global entry to manage attributes. Looking through the current models, it seems like much of this can be implemented right away, with a few modifications.

    and here is a list of the thing attributes should able to handle

    • Attributes should have it's own global management, and then be attached to product classes
    • Swatch type on the ProductAttributeValue (for handling frontend representation e.g. Color, Image etc.)

    There's probably more stuff that i forgot in this writeup, so please let me know if missed anything and if you are interested in helping out implementing. Obviously much of the work will be in the frontend, and i think i read somewhere that the dashboard was about to be rewritten, so if anyone has information on this i would be glad to have it.

    Cheers

    opened by jakobholmelund 21
  • Remove django-compressor

    Remove django-compressor

    And replace it with a gulp file that automatically rebuilds the css when the less files change and possibly more bells and whistles.

    I feel that django-compressor adds too much runtime complexity for frontend developer convenience that she is now used to getting from gulp and friends. Also, gulp and friends do a much better job at being convenient for the modern frontend developer:

    • sourcemap support
    • freedom of choice to use or not use django-compressor in the frontend. Right now if you want to use django-compressor in the frontend, you have to use it in the dashboard as well.
    • no confusion and complexity arising from the fact that django-compressor parses templates outside of their normal context, bypassing inheritance (Blocks jquery-ui-(js|css) by yours truly)

    I'm implementing this as we speak.

    Concerns #796.

    ✍ For review 
    opened by mbertheau 21
  • Performance issues 1.1

    Performance issues 1.1

    Since 1.1 the category slug and full_name are not denormalised anymore, which results in a massive number (5000+) of queries in the dashboard and the frontend.

    The relevant commits are:

    • https://github.com/django-oscar/django-oscar/commit/283fb600abacfb9a4b2eebb867b6e64f0297bd73
    • https://github.com/django-oscar/django-oscar/commit/6f2119ffeb52109cff977ad8ae5b723128bd6c09

    I think the only option is to start denormalising the values again. But if anyone has a better proposal then pleat let me know.

    ☁ Bug 
    opened by mvantellingen 20
  • Can't extend AbstractUser within customised customer app

    Can't extend AbstractUser within customised customer app

    According to Django documentation we cant' use get_user_model in this context.

    Related Django bug - https://code.djangoproject.com/ticket/19218.

    I'm still thinking it's a bug in Django, but it's always easier to document the limitations. :)

    opened by martyanov 20
  • Bootstrap 3 Migration

    Bootstrap 3 Migration

    opened by timjacobi 20
  • Bootstrap3 migration for frontend templates

    Bootstrap3 migration for frontend templates

    We did our best to keep the UI close to the bootstrap2 version, but there are some differences.

    Some partials were shared between dashboard templates and frontend templates, so we had to duplicate them in dashboard/partials/.

    • CSS are compiled
    • tests are passing
    • please tell us if we missed something
    ✿ Front-end 
    opened by kapt 19
  • AttributeError: 'NoneType' object has no attribute 'STATUS_CHOICES'

    AttributeError: 'NoneType' object has no attribute 'STATUS_CHOICES'

    Using 0.6 version this is happening to me. I had to use 0.5.1 version, and the error disappeared.

    (test-oscar)[email protected]:~/code/test-ecommerce/test$ ./manage.py syncdb --noinput --settings test.settings.local
    /home/user/venv/test-oscar/local/lib/python2.7/site-packages/sorl/thumbnail/helpers.py:5: DeprecationWarning: django.utils.simplejson is deprecated; use json instead.
      from django.utils import simplejson
    
    Traceback (most recent call last):
      File "./manage.py", line 10, in <module>
        execute_from_command_line(sys.argv)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
        utility.execute()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
        self.execute(*args, **options.__dict__)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/management/base.py", line 284, in execute
        self.validate()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/management/base.py", line 310, in validate
        num_errors = get_validation_errors(s, app)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/management/validation.py", line 34, in get_validation_errors
        for (app_name, error) in get_app_errors().items():
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 196, in get_app_errors
        self._populate()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
        self.load_app(app_name, True)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
        models = import_module('%s.models' % app_name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
        __import__(name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/catalogue/models.py", line 66, in <module>
        from .receivers import *  # noqa
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/catalogue/receivers.py", line 10, in <module>
        ProductImage = get_model('catalogue', 'ProductImage')
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 271, in get_model
        self._populate()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
        self.load_app(app_name, True)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
        models = import_module('%s.models' % app_name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
        __import__(name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/customer/models.py", line 20, in <module>
        from oscar.apps.customer.history import *  # noqa
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/customer/history.py", line 9, in <module>
        Product = get_model('catalogue', 'Product')
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 271, in get_model
        self._populate()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
        self.load_app(app_name, True)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
        models = import_module('%s.models' % app_name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
        __import__(name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/ranges/models.py", line 8, in <module>
        Product = models.get_model('catalogue', 'Product')
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 271, in get_model
        self._populate()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
        self.load_app(app_name, True)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
        models = import_module('%s.models' % app_name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
        __import__(name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 63, in <module>
        patch_root_urlconf()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 51, in patch_root_urlconf
        reverse('djdt:render_panel')
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 480, in reverse
        app_list = resolver.app_dict[ns]
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 310, in app_dict
        self._populate()
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 262, in _populate
        for pattern in reversed(self.url_patterns):
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 346, in url_patterns
        patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 341, in urlconf_module
        self._urlconf_module = import_module(self.urlconf_name)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
        __import__(name)
      File "/home/user/code/test-ecommerce/test/test/urls.py", line 2, in <module>
        from oscar.app import application
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/app.py", line 11, in <module>
        class Shop(Application):
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/app.py", line 20, in Shop
        dashboard_app = get_class('dashboard.app', 'application')
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/core/loading.py", line 32, in get_class
        return get_classes(module_label, [classname])[0]
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/core/loading.py", line 85, in get_classes
        imported_module = __import__(module_path, fromlist=classnames)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/app.py", line 8, in <module>
        class DashboardApplication(Application):
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/app.py", line 17, in DashboardApplication
        users_app = get_class('dashboard.users.app', 'application')
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/core/loading.py", line 32, in get_class
        return get_classes(module_label, [classname])[0]
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/core/loading.py", line 85, in get_classes
        imported_module = __import__(module_path, fromlist=classnames)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/users/app.py", line 4, in <module>
        from oscar.apps.dashboard.users import views
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/users/views.py", line 17, in <module>
        'ProductAlertUpdateForm'))
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/core/loading.py", line 85, in get_classes
        imported_module = __import__(module_path, fromlist=classnames)
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/users/forms.py", line 32, in <module>
        class ProductAlertSearchForm(forms.Form):
      File "/home/user/venv/test-oscar/local/lib/python2.7/site-packages/oscar/apps/dashboard/users/forms.py", line 35, in ProductAlertSearchForm
        ) + ProductAlert.STATUS_CHOICES
    AttributeError: 'NoneType' object has no attribute 'STATUS_CHOICES'
    
    opened by ldgarcia 19
  • Refactor communications

    Refactor communications

    Refs #319 #783

    Summary:

    • Created separate app - communication.
    • Dispatcher moved to communication app's utils.
    • Dispatcher improved with methods to send each separate email.
    • Added ability to send email with attachments.
    • All event codes (for each separate email) now kept in Dispatcher.
    • Sending notifications moved to communication app as well.
    • Added ability to chose if sent email should be saved to DB (through OSCAR_SAVE_SENT_EMAILS_TO_DB, True by default).
    • All relevant models moved from customer app to communication app (with data migrations) - CommunicationEventType, Email and Notification.
    • Moved classes and models added to MOVED_CLASSES and MOVED_MODELS.
    • Tests adapted to check new functionality.
    • Added tests to check the sending of each separate email.
    • Deleted TestOrderPlacementMixin - Now we use Dispatcher to send emails and code (event code) does not used when we get message context for email that informs about a placed order.
    • All emails' templates (commtype_*) moved from customer/emails to communication/emails.
    • Templates from customer/email/*.html and customer/notification/*.html moved to communication/email/*.html and communication/notification/*.html.
    opened by sasha0 17
  • Bump eslint from 8.22.0 to 8.31.0

    Bump eslint from 8.22.0 to 8.31.0

    Bumps eslint from 8.22.0 to 8.31.0.

    Release notes

    Sourced from eslint's releases.

    v8.31.0

    Features

    • 52c7c73 feat: check assignment patterns in no-underscore-dangle (#16693) (Milos Djermanovic)
    • b401cde feat: add options to check destructuring in no-underscore-dangle (#16006) (Morten Kaltoft)
    • 30d0daf feat: group properties with values in parentheses in key-spacing (#16677) (Francesco Trotta)

    Bug Fixes

    • 35439f1 fix: correct syntax error in prefer-arrow-callback autofix (#16722) (Francesco Trotta)
    • 87b2470 fix: new instance of FlatESLint should load latest config file version (#16608) (Milos Djermanovic)

    Documentation

    • 4339dc4 docs: Update README (GitHub Actions Bot)
    • 4e4049c docs: optimize code block structure (#16669) (Sam Chen)
    • 54a7ade docs: do not escape code blocks of formatters examples (#16719) (Sam Chen)
    • e5ecfef docs: Add function call example for no-undefined (#16712) (Elliot Huffman)
    • a3262f0 docs: Add mastodon link (#16638) (Amaresh S M)
    • a14ccf9 docs: clarify files property (#16709) (Sam Chen)
    • 3b29eb1 docs: fix npm link (#16710) (Abdullah Osama)
    • a638673 docs: fix search bar focus on Esc (#16700) (Shanmughapriyan S)
    • f62b722 docs: country flag missing in windows (#16698) (Shanmughapriyan S)
    • 4d27ec6 docs: display zh-hans in the docs language switcher (#16686) (Percy Ma)
    • 8bda20e docs: remove manually maintained anchors (#16685) (Percy Ma)
    • b68440f docs: User Guide Getting Started expansion (#16596) (Ben Perlmutter)

    Chores

    • 65d4e24 chore: Upgrade @​eslint/eslintrc@​1.4.1 (#16729) (Brandon Mills)
    • 8d93081 chore: fix CI failure (#16721) (Sam Chen)
    • 8f17247 chore: Set up automatic updating of README (#16717) (Nicholas C. Zakas)
    • 4cd87cb ci: bump actions/stale from 6 to 7 (#16713) (dependabot[bot])
    • fd20c75 chore: sort package.json scripts in alphabetical order (#16705) (Darius Dzien)
    • 10a5c78 chore: update ignore patterns in eslint.config.js (#16678) (Milos Djermanovic)

    v8.30.0

    Features

    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)

    Bug Fixes

    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)

    Documentation

    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)

    ... (truncated)

    Changelog

    Sourced from eslint's changelog.

    v8.31.0 - December 31, 2022

    • 65d4e24 chore: Upgrade @​eslint/eslintrc@​1.4.1 (#16729) (Brandon Mills)
    • 35439f1 fix: correct syntax error in prefer-arrow-callback autofix (#16722) (Francesco Trotta)
    • 87b2470 fix: new instance of FlatESLint should load latest config file version (#16608) (Milos Djermanovic)
    • 8d93081 chore: fix CI failure (#16721) (Sam Chen)
    • 4339dc4 docs: Update README (GitHub Actions Bot)
    • 8f17247 chore: Set up automatic updating of README (#16717) (Nicholas C. Zakas)
    • 4e4049c docs: optimize code block structure (#16669) (Sam Chen)
    • 54a7ade docs: do not escape code blocks of formatters examples (#16719) (Sam Chen)
    • 52c7c73 feat: check assignment patterns in no-underscore-dangle (#16693) (Milos Djermanovic)
    • e5ecfef docs: Add function call example for no-undefined (#16712) (Elliot Huffman)
    • a3262f0 docs: Add mastodon link (#16638) (Amaresh S M)
    • 4cd87cb ci: bump actions/stale from 6 to 7 (#16713) (dependabot[bot])
    • a14ccf9 docs: clarify files property (#16709) (Sam Chen)
    • 3b29eb1 docs: fix npm link (#16710) (Abdullah Osama)
    • fd20c75 chore: sort package.json scripts in alphabetical order (#16705) (Darius Dzien)
    • a638673 docs: fix search bar focus on Esc (#16700) (Shanmughapriyan S)
    • f62b722 docs: country flag missing in windows (#16698) (Shanmughapriyan S)
    • 4d27ec6 docs: display zh-hans in the docs language switcher (#16686) (Percy Ma)
    • 8bda20e docs: remove manually maintained anchors (#16685) (Percy Ma)
    • b401cde feat: add options to check destructuring in no-underscore-dangle (#16006) (Morten Kaltoft)
    • b68440f docs: User Guide Getting Started expansion (#16596) (Ben Perlmutter)
    • 30d0daf feat: group properties with values in parentheses in key-spacing (#16677) (Francesco Trotta)
    • 10a5c78 chore: update ignore patterns in eslint.config.js (#16678) (Milos Djermanovic)

    v8.30.0 - December 16, 2022

    • f2c4737 chore: upgrade @​eslint/eslintrc@​1.4.0 (#16675) (Milos Djermanovic)
    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • ba74253 chore: standardize npm script names per #14827 (#16315) (Patrick McElhaney)
    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • 0d9af4c ci: fix npm v9 problem with file: (#16664) (Milos Djermanovic)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 90c9219 refactor: migrate off deprecated function-style rules in all tests (#16618) (Bryan Mishkin)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)
    • 8ba124c docs: update the prefer-const example (#16607) (Pavel)
    • e6cb05a docs: fix css leaking (#16603) (Sam Chen)

    v8.29.0 - December 2, 2022

    • 0311d81 docs: Configuring Plugins page intro, page tweaks, and rename (#16534) (Ben Perlmutter)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Update redis requirement from <4.4,>=3.5 to >=3.5,<4.5

    Update redis requirement from <4.4,>=3.5 to >=3.5,<4.5

    Updates the requirements on redis to permit the latest version.

    Release notes

    Sourced from redis's releases.

    Version 4.4.0

    Changes

    4.4.0rc4 release notes 4.4.0rc3 release notes 4.4.0rc2 release notes 4.4.0rc1 release notes

    🚀 New Features (since 4.4.0rc4)

    • Async clusters: Support creating locks inside async functions (#2471)

    🐛 Bug Fixes (since 4.4.0rc4)

    • Async: added 'blocking' argument to call lock method (#2454)
    • Added a replacement for the default cluster node in the event of failure. (#2463)
    • Fixed geosearch: Wrong number of arguments for geosearch command (#2464)

    🧰 Maintenance (since 4.4.0rc4)

    • Updating dev dependencies (#2475)
    • Removing deprecated LGTM (#2473)
    • Added an explicit index name in RediSearch example (#2466)
    • Adding connection step to bloom filter examples (#2478)

    Contributors (since 4.4.0rc4)

    We'd like to thank all the contributors who worked on this release!

    @​Sibuken, @​barshaul, @​chayim, @​dvora-h, @​nermiller, @​uglide and @​utkarshgupta137

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Update django-debug-toolbar requirement from <3.6,>=2.2 to >=2.2,<3.9

    Update django-debug-toolbar requirement from <3.6,>=2.2 to >=2.2,<3.9

    Updates the requirements on django-debug-toolbar to permit the latest version.

    Release notes

    Sourced from django-debug-toolbar's releases.

    3.8.1

    Note: 3.8.0 was not released, use 3.8.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.7...3.8.1

    Changelog

    Sourced from django-debug-toolbar's changelog.

    3.8.1 (2022-12-03)

    • Fixed release process by re-adding twine to release dependencies. No functional change.

    3.8.0 (2022-12-03)

    • Added protection against division by 0 in timer.js
    • Auto-update History panel for JavaScript fetch requests.
    • Support HTMX boosting <https://htmx.org/docs/#boosting/>__ and Turbo <https://turbo.hotwired.dev/>__ pages.
    • Simplify logic for Panel.enabled property by checking cookies earlier.
    • Include panel scripts in content when RENDER_PANELS is set to True.
    • Create one-time mouseup listener for each mousedown when dragging the handle.
    • Update package metadata to use Hatchling.
    • Fix highlighting on history panel so odd rows are highlighted when selected.
    • Formalize support for Python 3.11.

    3.7.0 (2022-09-25)

    • Added Profiling panel setting PROFILER_THRESHOLD_RATIO to give users better control over how many function calls are included. A higher value will include more data, but increase render time.
    • Update Profiling panel to include try to always include user code. This code is more important to developers than dependency code.
    • Highlight the project function calls in the profiling panel.
    • Added Profiling panel setting PROFILER_CAPTURE_PROJECT_CODE to allow users to disable the inclusion of all project code. This will be useful to project setups that have dependencies installed under settings.BASE_DIR.
    • The toolbar's font stack now prefers system UI fonts. Tweaked paddings, margins and alignments a bit in the CSS code.
    • Only sort the session dictionary when the keys are all strings. Fixes a bug that causes the toolbar to crash when non-strings are used as keys.

    3.6.0 (2022-08-17)

    • Remove decorator signed_data_view as it was causing issues with django-urlconfchecks <https://github.com/AliSayyah/django-urlconfchecks/>__.
    • Added pygments to the test environment and fixed a crash when using the template panel with Django 4.1 and pygments installed.
    • Stayed on top of pre-commit hook and GitHub actions updates.
    • Added some workarounds to avoid a Chromium warning which was worrisome to developers.

    ... (truncated)

    Commits
    • 6e265c1 Version 3.8.1
    • 47e6f1a Fix release job by including twine to check distributions.
    • d2be499 Version 3.8.0
    • bc195b1 Formalize support for Python 3.11.
    • be01d51 Update changelog.
    • 00bc368 Attach handlers to djdebug instead of document
    • d04b9d1 [pre-commit.ci] pre-commit autoupdate
    • d9b25f2 Added TOOLBAR_LANGUAGE setting.
    • a0681c9 [pre-commit.ci] pre-commit autoupdate (#1701)
    • a481849 Fix highlighting on history panel (#1698)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump isort from 5.10.1 to 5.11.4

    Bump isort from 5.10.1 to 5.11.4

    Bumps isort from 5.10.1 to 5.11.4.

    Release notes

    Sourced from isort's releases.

    5.11.4

    Changes

    :package: Dependencies

    5.11.3

    Changes

    :beetle: Fixes

    :construction_worker: Continuous Integration

    v5.11.3

    Changes

    :beetle: Fixes

    :construction_worker: Continuous Integration

    5.11.2

    Changes

    5.11.1

    Changes December 12 2022

    ... (truncated)

    Changelog

    Sourced from isort's changelog.

    5.11.4 December 21 2022

    5.11.3 December 16 2022

    5.11.2 December 12 2022

    5.11.1 December 12 2022

    5.11.0 December 12 2022

    Commits
    • 98390f5 Merge pull request #2059 from PyCQA/version/5.11.4
    • df69a05 Bump version 5.11.4
    • f9add58 Merge pull request #2058 from PyCQA/deps/poetry-1.3.1
    • 36caa91 Bump Poetry 1.3.1
    • 3c2e2d0 Merge pull request #1978 from mgorny/toml-test
    • 45d6abd Remove obsolete toml import from the test suite
    • 3020e0b Merge pull request #2057 from mgorny/poetry-install
    • a6fdbfd Stop installing documentation files to top-level site-packages
    • ff306f8 Fix tag template to match old standard
    • 227c4ae Merge pull request #2052 from hugovk/main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump sass from 1.54.0 to 1.57.1

    Bump sass from 1.54.0 to 1.57.1

    Bumps sass from 1.54.0 to 1.57.1.

    Release notes

    Sourced from sass's releases.

    Dart Sass 1.57.1

    To install Sass 1.57.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.

    Changes

    • No user-visible changes.

    See the full changelog for changes in earlier releases.

    Dart Sass 1.57.0

    To install Sass 1.57.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.

    Changes

    • Add a split($string, $separator, $limit: null) function to sass:string that splits a string into separate substrings based on a separator string.

    JavaScript API

    • Potentially breaking bug fix: Custom functions in both the modern and legacy API now properly reject signatures with whitespace between the function name and parentheses.

    • Custom functions in the legacy API now allow signatures with whitespace before the function name, to match a bug in Node Sass.

    Dart API

    • Potentially breaking bug fix: Callable.fromSignature() and AsyncCallable.fromSignature() now reject signatures with whitespace between the function name and parentheses.

    See the full changelog for changes in earlier releases.

    Dart Sass 1.56.2

    To install Sass 1.56.2, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.

    Changes

    Embedded Sass

    See the full changelog for changes in earlier releases.

    Dart Sass 1.56.1

    To install Sass 1.56.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.

    ... (truncated)

    Changelog

    Sourced from sass's changelog.

    1.57.1

    • No user-visible changes.

    1.57.0

    • Add a split($string, $separator, $limit: null) function to sass:string that splits a string into separate substrings based on a separator string.

    JavaScript API

    • Potentially breaking bug fix: Custom functions in both the modern and legacy API now properly reject signatures with whitespace between the function name and parentheses.

    • Custom functions in the legacy API now allow signatures with whitespace before the function name, to match a bug in Node Sass.

    Dart API

    • Potentially breaking bug fix: Callable.fromSignature() and AsyncCallable.fromSignature() now reject signatures with whitespace between the function name and parentheses.

    1.56.2

    Embedded Sass

    1.56.1

    Embedded Sass

    • Importer results now validate that contents is actually a string and whether sourceMapUrl is an absolute URL.

    1.56.0

    • Potentially breaking change: To match the CSS spec, SassScript expressions beginning with not or ( are no longer supported at the beginning of parenthesized sections of media queries. For example,

      @media (width >= 500px) and (not (grid))
      

      will now be emitted unchanged, instead of producing

    ... (truncated)

    Commits
    • 5522c17 Run "dart pub upgrade" rather than "pub upgrade" (#1851)
    • 4349769 Create dependabot.yml (#1849)
    • 100f76f Implement string.split() (#1839)
    • 236b83f Delete dev dependency on Sass when releasing the embedded compiler (#1850)
    • 641d8e1 Be strict about whitespace in custom functions (#1848)
    • e87176a Add a factory method for creating host callable (#1829)
    • 790eb8a Update CHANGELOG for embedded-host-node fixes (#1828)
    • f3293db JS API: Validate that importer result 'contents' is a string and improve Ar...
    • 00c3517 Make `cloneCss() clone modules that transitively contain CSS (#1824)
    • 44d6bb6 Add full support for Media Queries 4 (#1822)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump jquery from 3.6.0 to 3.6.3

    Bump jquery from 3.6.0 to 3.6.3

    Bumps jquery from 3.6.0 to 3.6.3.

    Release notes

    Sourced from jquery's releases.

    jQuery supports CSS.supports in jQuery 3.6.3

    https://blog.jquery.com/2022/12/20/jquery-3-6-3-released-a-quick-selector-fix/

    jQuery 3.6.2 :has arrived!

    https://blog.jquery.com/2022/12/13/jquery-3-6-2-released/

    jQuery 3.6.1 Maintenance Release

    https://blog.jquery.com/2022/08/26/jquery-3-6-1-maintenance-release/

    Commits
    • 6786a17 3.6.3
    • 81d5bd1 Build: remove stale Insight package from custom builds
    • 8989500 Selector: Update Sizzle from 2.3.8 to 2.3.9
    • 2c5b47c Build: Updating the 3.x-stable version to 3.6.3-pre.
    • 2215119 Release: update authors
    • 0d9fae4 Build: Limit permissions for GitHub workflows
    • f4809f9 Build: Test on Node.js 18 & 19, stop testing on Node 12
    • 5318e31 Selector:Manipulation: Fix DOM manip within template contents
    • a1b7ae3 Selector: Update Sizzle from 2.3.7 to 2.3.8
    • 28241b7 Build: Bump actions/setup-node from 3.5.0 to 3.5.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
Releases(3.2)
Owner
Oscar
Flexible e-commerce for Django
Oscar
Utility for working with recurring dates in Django.

django-recurrence django-recurrence is a utility for working with recurring dates in Django. Documentation is available at https://django-recurrence.r

408 Jan 06, 2023
Simple Login Logout System using Django, JavaScript and ajax.

Djanog-UserAuthenticationSystem Technology Use #version Python 3.9.5 Django 3.2.7 JavaScript --- Ajax Validation --- Login and Logout Functionality, A

Bhaskar Mahor 3 Mar 26, 2022
django+bootstrap5 实现的 个人博客

项目状态: 正在开发中【目前已基本可用】 项目地址: https://github.com/find456789/django_blog django_blog django+bootstrap5 实现的 个人博客 特点 文章的历史版本管理(随时回退) rss、atom markdown 评论功能

名字 3 Nov 16, 2021
The pytest framework makes it easy to write small tests, yet scales to support complex functional testing

The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. An example o

pytest-dev 9.6k Jan 06, 2023
The friendly PIL fork (Python Imaging Library)

Pillow Python Imaging Library (Fork) Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lund

Pillow 10.4k Jan 03, 2023
It takes time to start a Django Project and make it almost production-ready.

It takes time to start a Django Project and make it almost production-ready. A developer needs to spend a lot of time installing required libraries, setup a database, setup cache as well as hiding se

Khan Asfi Reza 1 Jan 01, 2022
Django-discord-bot - Framework for creating Discord bots using Django

django-discord-bot Framework for creating Discord bots using Django Uses ASGI fo

Jamie Bliss 1 Mar 04, 2022
Bootstrap 3 integration with Django.

django-bootstrap3 Bootstrap 3 integration for Django. Goal The goal of this project is to seamlessly blend Django and Bootstrap 3. Want to use Bootstr

Zostera B.V. 2.3k Jan 03, 2023
A simple demonstration of how a django-based website can be set up for local development with microk8s

Django with MicroK8s Start Building Your Project This project provides a Django web app running as a single node Kubernetes cluster in microk8s. It is

Noah Jacobson 19 Oct 22, 2022
Automatic class scheduler for Texas A&M written with Python+Django and React+Typescript

Rev Registration Description Rev Registration is an automatic class scheduler for Texas A&M, aimed at easing the process of course registration by gen

Aggie Coding Club 21 Nov 15, 2022
An orgizational tool to keep track of tasks/projects and the time spent on them.

Django-Task-Manager Task Tracker using Python Django About The Project This project is an orgizational tool to keep track of tasks/projects and the ti

Nick Newton 1 Dec 21, 2021
Django models and endpoints for working with large images -- tile serving

Django Large Image Models and endpoints for working with large images in Django -- specifically geared towards geospatial tile serving. DISCLAIMER: th

Resonant GeoData 42 Dec 17, 2022
An extremely fast JavaScript and CSS bundler and minifier

Website | Getting started | Documentation | Plugins | FAQ Why? Our current build tools for the web are 10-100x slower than they could be: The main goa

Evan Wallace 34.2k Jan 04, 2023
RestApi With Django 3.2 And Django Rest Framework

RestApi-With-Django-3.2-And-Django-Rest-Framework Description This repository is a Software of Development with Python. Virtual Using pipenv, virtuale

Daniel Arturo Alejo Alvarez 6 Aug 02, 2022
Twitter-clone using Django (DRF) + VueJS

Twitter Clone work in progress 🚧 A Twitter clone project Table Of Contents About the Project Built With Getting Started Running project License Autho

Ahmad Alwi 8 Sep 08, 2022
Example project demonstrating using Django’s test runner with Coverage.py

Example project demonstrating using Django’s test runner with Coverage.py Set up with: python -m venv --prompt . venv source venv/bin/activate python

Adam Johnson 5 Nov 29, 2021
Bootstrap 4 integration with Django.

django-bootstrap 4 Bootstrap 4 integration for Django. Goal The goal of this project is to seamlessly blend Django and Bootstrap 4. Requirements Pytho

Zostera B.V. 980 Dec 29, 2022
Django Pickled Model

Django Pickled Model Django pickled model provides you a model with dynamic data types. a field can store any value in any type. You can store Integer

Amir 3 Sep 14, 2022
Django admin CKEditor integration.

Django CKEditor NOTICE: django-ckeditor 5 has backward incompatible code moves against 4.5.1. File upload support has been moved to ckeditor_uploader.

2.2k Dec 31, 2022
Djang Referral System

Djang Referral System About | Features | Technologies | Requirements | Starting | License | Author 🎯 About I created django referral system and I wan

Alex Kotov 5 Oct 25, 2022