:couple: Multi-user accounts for Django projects

Overview

django-organizations

Summary Groups and multi-user account management
Author Ben Lopatin (http://benlopatin.com / https://wellfire.co)
Status Documentation Status Travis-CI Build Status PyPI Package latest release PyPI Wheel Supported versions Supported implementations

Separate individual user identity from accounts and subscriptions. Django Organizations adds user-managed, multi-user groups to your Django project. Use Django Organizations whether your site needs organizations that function like social groups or multi-user account objects to provide account and subscription functionality beyond the individual user.

  • Works with your existing user model, whether django.contrib.auth or a custom model. No additional user or authentication functionality required.
  • Users can be belong to and own more than one organization (account, group)
  • Invitation and registration functionality works out of the box for many situations and can be extended as need to fit specific requirements.
  • Start with the base models or use your own for greater customization.

Documentation is on Read the Docs

Development & Contributing

The master branch represents version 2 development. For updates related to 1.x versions of django-organizations pull requests should be made against the [`version-1.x` branch](tree/version-1.x).

Development is on-going. To-do items have been moved to the wiki for the time being.

The basic functionality should not need much extending. Current dev priorities for me and contributors should include:

  • Improving the tests and test coverage (ideally moving them back out of the main module and executable using the setup.py file)
  • Improving the backends and backends concept so that additional invitation and registration backends can be used
  • Documentation
  • Ensuring all application text is translatable

Please use the project's issues tracker to report bugs, doc updates, or other requests/suggestions.

Targets & testing

The codebase is targeted and tested against:

  • Django 2.2.x against Python 3.5, 3.6, 3.7, 3.8
  • Django 3.0.x against Python 3.6, 3.7, 3.8
  • Django 3.1.x against Python 3.6, 3.7, 3.8

To run the tests against all target environments, install tox and then execute the command:

tox

Fast testing

Testing each change on all the environments takes some time, you may want to test faster and avoid slowing down development by using pytest against your current environment:

pip install -r requirements-test.txt
py.test

Supply the -x option for failfast mode:

py.test -x

Submitting

These submission guidelines will make it more likely your submissions will be reviewed and make it into the project:

  • Ensure they match the project goals and are sufficiently generalized
  • Please try to follow Django coding style. The code base style isn't all up to par, but I'd like it to move in that direction
  • Also please try to include good commit log messages.
  • Pull requests should include an amount of code and commits that are reasonable to review, are logically grouped, and based off clean feature branches.

Code contributions are expected to pass in all target environments, and pull requests should be made from branches with passing builds on Travis CI.

Project goals

django-organizations should be backend agnostic:

  1. Authentication agnostic
  2. Registration agnostic
  3. Invitation agnostic
  4. User messaging agnostic

Etc.

Installing

First add the application to your Python path. The easiest way is to use pip:

pip install django-organizations

Check the Release History tab on the PyPI package page for pre-release versions. These can be downloaded by specifying the version.

You can also install by downloading the source and running:

$ python setup.py install

By default you will need to install django-extensions or comparable libraries if you plan on adding Django Organizations as an installed app to your Django project. See below on configuring.

Configuring

Make sure you have django.contrib.auth installed, and add the organizations application to your INSTALLED_APPS list:

INSTALLED_APPS = (
    ...
    'django.contrib.auth',
    'organizations',
)

Then ensure that your project URL conf is updated. You should hook in the main application URL conf as well as your chosen invitation backend URLs:

from organizations.backends import invitation_backend

urlpatterns = [
    ...
    url(r'^accounts/', include('organizations.urls')),
    url(r'^invitations/', include(invitation_backend().get_urls())),
]

Auto slug field

The standard way of using Django Organizations is to use it as an installed app in your Django project. Django Organizations will need to use an auto slug field which are not included. By default it will try to import these from django-extensions, but you can configure your own in settings. The default:

ORGS_SLUGFIELD = 'django_extensions.db.fields.AutoSlugField'

Alternative:

ORGS_SLUGFIELD = 'autoslug.fields.AutoSlugField'

Previous versions allowed you to specify an ORGS_TIMESTAMPED_MODEL path. This is now ignored and the functionality satisifed by a vendored solution. A warning will be given but this should not have any effect on your code.

Registration & invitation backends

You can specify a different invitation backend in your project settings, and the invitation_backend function will provide the URLs defined by that backend:

INVITATION_BACKEND = 'myapp.backends.MyInvitationBackend'

Usage Overview

For most use cases it should be sufficient to include the app views directly using the default URL conf file. You can customize their functionality or access controls by extending the base views.

There are three models:

  • Organization The group object. This is what you would associate your own app's functionality with, e.g. subscriptions, repositories, projects, etc.
  • OrganizationUser A custom through model for the ManyToMany relationship between the Organization model and the User model. It stores additional information about the user specific to the organization and provides a convenient link for organization ownership.
  • OrganizationOwner The user with rights over the life and death of the organization. This is a one to one relationship with the OrganizationUser model. This allows User objects to own multiple organizations and makes it easy to enforce ownership from within the organization's membership.

The underlying organizations API is simple:

>>> from organizations.utils import create_organization
>>> chris = User.objects.get(username="chris")
>>> soundgarden = create_organization(chris, "Soundgarden", org_user_defaults={'is_admin': True})
>>> soundgarden.is_member(chris)
True
>>> soundgarden.is_admin(chris)
True
>>> soundgarden.owner.organization_user
<OrganizationUser: Chris Cornell>
>>> soundgarden.owner.organization_user.user
>>> <User: chris>
>>> audioslave = create_organization(chris, "Audioslave")
>>> tom = User.objects.get(username="tom")
>>> audioslave.add_user(tom, is_admin=True)
<OrganizationUser: Tom Morello>

Custom models

Django-organizations can act as a base library (not installed in your project) and used to create unique organization model sets using custom tables. See the Cooking with Django Organizations section in the documentation for advice on proceeding.

License

Anyone is free to use or modify this software under the terms of the BSD license.

Comments
  • Update supported Django 3.2 and 4.x testing with supported Python versions

    Update supported Django 3.2 and 4.x testing with supported Python versions

    • Adds migrations that will be needed in Django 4 (seem to not cause any issues on <4).
    • Gets rid of some Python configs from tox that aren't used.
    • Update testing and manage configs to use django_extensions.db.fields.AutoSlugField (the default for a long time) and update tests accordingly.
    • Update the README-listed tested versions.
    opened by mgrdcm 19
  • Implementing Abstract Models

    Implementing Abstract Models

    Followup of #118.

    Consider this a work in progress. I think it will take a few weeks to complete, but I managed to get something working early, so I can try to integrate it in the project I'm working on (named OpenWISP2 btw) before trying to merging it here.

    I will also write some tests for this new use case, modeling them against the existing ones.

    • [x] working rough implementation
    • [x] improve naming of leading underscore classes
    • [x] decide if the leading underscore classes should be kept private or made public
    • [x] decide if the new abstract classes should be prefixed with Abstract (would need to modify OrgMeta)
    • [x] add tests for new use case
    • [x] update documentation
    opened by nemesisdesign 15
  • [QA] Added compatibility with django 2.0

    [QA] Added compatibility with django 2.0

    So far this is only halfway - I'm running into a migration error that I'm not clear as to the cause of. (The other errors I do know how to fix, mostly).

    opened by AYZhu 13
  • Odd migration behavior in 1.0.0 release

    Odd migration behavior in 1.0.0 release

    Perhaps I am misunderstanding something, but I was confused by some odd migration behavior. Steps to reproduce:

    virtualenv -p python3 foo
    pip install Django django-extensions django-organizations
    cd $VIRTUAL_ENV; django-admin startproject foo; cd foo
    # add 'organizations' to INSTALLED_APPS
    python manage.py migrate
    python manage.py makemigrations
    

    Expected result (which is what happens in django-organizations 0.9.3):

    No changes detected
    

    Actual result with django-organizations 1.0.0:

    Migrations for 'organizations':
    /virtualenvs/foo/lib/python3.6/site-packages/organizations/migrations/0003_auto_20180111_2242.py
        - Alter field slug on organization
    

    It's not clear to me why the above migration is being auto-generated. I thought migrations were only auto-generated when model definitions differ from existing migrations, and I would have expected any needed migrations to be included with the app.

    In short, I've never seen a Django app do this before, and thus it's not clear if the above is the intended behavior.

    (Looking back, it's not clear to me why existing migrations were modified in c1c88a7 — would it not have been better to create a new migration instead? cc: @AZtheAsian @nemesisdesign)

    Again, perhaps I'm totally misunderstanding something. If indeed there's nothing amiss here, then I am merely seeking to be enlightened. 😇

    bug migrations 
    opened by justinmayer 11
  • Why does Organization have the user ManyToManyField?

    Why does Organization have the user ManyToManyField?

    It seems that the related_name on OrganizationUser (i.e., organization_users) which points back to Organization accomplishes the same thing, and in fact self.organization_users is used in some places in the code in place of self.users (see Organization.is_admin). Sorry, I have not gone through actually fully testing what I'm saying, as I am using Django-nonrel and ManyToManyField is not supported at all. But it does appear that using related_name on a ForeignKey is identical to using through on ManyToManyField from the other side of the relationship.

    Can you eliminate ManyToManyField to make it nonrel-friendly, and in general to remove redundant fields?

    Thanks!

    opened by jacobg 9
  • AttributeError raised during signup from invite

    AttributeError raised during signup from invite

    An AttributeError is raised when signing up from an invitation:

    'User' object has no attribute 'organization_set'
    

    The exception is raised when using the default invitation backend, at this line. We're using django-organizations 0.3.0, but I reproduced it in 0.4.0 too. We're using Django 1.6.5, with Python 2.7.5.

    opened by jdp 8
  • Please support abstract model inheritance

    Please support abstract model inheritance

    Your implementation currently supports only multi-table model inheritance (i.e., Organization, OrganizationUser). Please support abstract model inheritance, so that models can be customized within the same table. There will likely need to be settings for: ORGANIZATION_MODEL ORGANIZATION_USER_MODEL

    feature 
    opened by jacobg 7
  • released version is missing makemigrations changes

    released version is missing makemigrations changes

    Hi,

    As my Client class inherits from Organization, the initial migration will depen on a new created migration which is not going to be available (it was just created, locally):

    Migrations for 'organizations': 0002_auto_20151112_1643.py: - Alter field created on organization - Alter field modified on organization - Alter field created on organizationowner - Alter field modified on organizationowner - Alter field created on organizationuser - Alter field modified on organizationuser

    Would you mind fixing the missing migration and releasing again? this is critical for making it work correctly. Thanks!

    opened by manelclos 6
  • Fixing CONTRIBUTING docs

    Fixing CONTRIBUTING docs

    This PR does not just fix the docs (contributing part) but also fixes (I guess so) some tips about how to create the environment to develop new features/fix bugs. To accomplish it I changed some that were raising errors like 'python setup.py test' (nosetests does not run this way). updated setup.py and requirements.txt was replaced by requirements_dev.txt. I also took advantage to fix a type where another project was referenced instead of Django-organizations.

    opened by mauricioabreu 6
  • Set default_auto_field to 'AutoField'

    Set default_auto_field to 'AutoField'

    Django 3.2 introduces DEFAULT_AUTO_FIELD . If you set this to something other than 'django.db.models.AutoField', migrations will need to be generated for django-organization's models. This pull request sets default_auto_field just for these apps so that no migrations need to be generated.

    It also hides warnings on Django 3.2.

    The specific warning is

    RemovedInDjango41Warning: 'organizations' defines default_app_config = 'organizations.apps.OrganizationsConfig'. Django now detects this configuration automatically. You can remove default_app_config.
        app_config = AppConfig.create(entry)
    

    Similar in another highly used django library https://github.com/pennersr/django-allauth/pull/2829

    EDIT

    Change allauth to django-organization

    opened by simkimsia 5
  • Include views in a different context

    Include views in a different context

    Hi,

    First of all thank you for your hard work and this plugin. It's awesome. However, I'm missing some documentation about whether/how it's possible to include default view functionality you provide in my templates.

    Let's say I like the default behaviour of your views -> /accounts && /accounts/1/ and I'd like to include it to my page (to a specific part of a template). Is there any easy way to do so?

    NOTE: I've came back to Django after 1-2 years, so the solution might be obvious and maybe it's out of scope of this plugin's documentation, but maybe it could help if it's more explicit.

    opened by jvorcak 5
  • Add german translation

    Add german translation

    This PR adds german translations.

    Additionally, I saw that some translations have their .mo files committed. I do not know if this is intentional or not, but if this is not the case, I could also delete them in this PR and add *.mo files to the .gitignore.

    opened by ravi0lii 0
  • Organizations with multiple owners

    Organizations with multiple owners

    I'm still working my way through getting organizations implemented in my project. More a question, but I didn't see any specific way to do this - and it may be useful. I'd like to be able to have multiple "owners" or some other "admin" functionality so that the organization doesn't have to be infinitely tied to a specific user - users come and go, organizations (hopefully) persist.

    opened by brauhausdc 0
  • Page not found 404

    Page not found 404

    Hi, I tried following the Getting Started guide, but now when I try to access the path accounts/ or invitations/ I get a 404.

    When accessing the accounts/ path it also auto redirects to accounts/login which returns a 404.

    I also had to change the url snippet in the guide to use the path function instead of the url one because I was getting

    AttributeError: 'tuple' object has no attribute 'split_contents'
    

    on both urls.

    I'm using Django 4.0.1, DRF 3.13.1, DRF-simplejwt 5.0.0, django-extensions 3.1.5 and django-organizations 2.0.1.

    I also tried disabling DRF-simplejwt in case authentication was the issue but it led to the same errors.

    Thanks

    opened by obvionaoe 7
  • Error: BaseOrganizationAdmin requires 'slug' and BaseOrganizationUserAdmin requires 'is_admin' method or attribute

    Error: BaseOrganizationAdmin requires 'slug' and BaseOrganizationUserAdmin requires 'is_admin' method or attribute

    Dear all,

    Your thoughts on the following is highly appreciated. I get the following error message (client = organization):

    <class 'clients.admin.ClientAdmin'>: (admin.E027) The value of 'prepopulated_fields' refers to 'slug', which is not an attribute of 'clients.Client'.
    <class 'clients.admin.ClientUserAdmin'>: (admin.E108) The value of 'list_display[2]' refers to 'is_admin', which is not a callable, an attribute of 'ClientUserAdmin', or an attribute or method on 'clients.ClientUser'. 
    

    This, after adding the following code to admin.py:

    @admin.register(Client)
    class ClientAdmin(TenantAdminMixin, BaseOrganizationAdmin):
        list_display = ('name',)
    
    @admin.register(ClientUser)
    class ClientUserAdmin(BaseOrganizationUserAdmin):
        pass
    

    I have the following models.py:

    class Client(TenantMixin, OrganizationBase):
        created_on = models.DateField(auto_now_add=True)
        auto_create_schema = True
    
        def __str__(self):
            return self.name
    
    class ClientOwner(OrganizationOwnerBase):
        pass
    
    class ClientUser(OrganizationUserBase):
        pass
    
    class ClientUserInvitation(OrganizationInvitationBase):
        pass
    

    I'm a bit puzzled, since I've read the following on readthedocs (cookbook section):

    The base models (provided in organizations.base) instead provide only the bare minimum fields required to implement and manage organizations: if you want a slug field or timestamps on your models, you’ll need to add those in. However you can do so however you want. And if you don’t want any of those fields, you don’t have to take them.

    I can of course remove the code in admin.py, but I thought first I would call in your help ;-) Any feedback is much appreciated! Best, Erwin

    Using Django 3.2.7 and Python 3.9.x

    opened by moojen 0
  • Custom `AUTH_USER_MODEL` Creates Migration Circular Reference?

    Custom `AUTH_USER_MODEL` Creates Migration Circular Reference?

    Greetings!

    I'm having a go at using django-organizations, and I've been getting a circular reference error when attempting to perform migrations, which I believe I can trace back to django-organizations and using a custom AUTH_USER_MODEL.

    I say 'I believe' because I'm not 100% sure that I haven't done something incorrectly, but having read the documentation on using a custom user model and proxy models, I think I've covered myself...

    I've included a set of steps to reproduce below which should hopefully demonstrate that either I'm doing something woefully wrong, or there's something weird going on with custom user models.

    If you need any more information, or if I've stupidly broken it somehow, please let me know. :)

    Thanks for your help and your time! - Vector

    Steps to reproduce

    1. Create and activate a virtual environment:
      python3 -m venv .venv
      source .venv/bin/activate
      
    2. Install the following python requirements:
      appdirs==1.4.4
      asgiref==3.3.4
      distlib==0.3.1
      Django==3.2
      django-extensions==3.1.3
      django-organizations==2.0.0
      filelock==3.0.12
      pytz==2021.1
      six==1.15.0
      sqlparse==0.4.1
      virtualenv==20.4.2
      
    3. Create a new django project (I've called mine demo) and enter the directory:
      django-admin startproject demo
      cd demo
      
    4. Create an app called core which will be used for models and migrations
      python3 manage.py startapp core
      
    5. Put the following content into core/models.py:
      from django.db import models
      from django.contrib.auth.models import AbstractUser
      from organizations.models import Organization
      from organizations.models import OrganizationUser
      
      class User(AbstractUser):
          created_at = models.DateTimeField(auto_now_add=True, editable=False)
          updated_at = models.DateTimeField(auto_now_add=True)
          def __str__(self):
              return self.username
      
      class Tenant(Organization):
          class Meta:
              proxy = True
      
      class TenantUser(OrganizationUser):
          class Meta:
              proxy = True
      
    6. Update demo/settings.py to include the organizations and core apps, and set the custom user model:
      INSTALLED_APPS = [
          # ...
          'organizations',
          'core',
      ]
      
      AUTH_USER_MODEL = 'core.User'
      
    7. Create the migrations for the project:
      python3 manage.py makemigrations
      

      At this point, I get the first bit of weird output - a migration is created against the organizations module in the virtual environment:

      Migrations for 'organizations':
        .venv/lib/python3.9/site-packages/organizations/migrations/0005_auto_20210430_0635.py
          - Alter field id on organization
          - Alter field id on organizationinvitation
          - Alter field id on organizationowner
          - Alter field id on organizationuser
      Migrations for 'core':
        core/migrations/0001_initial.py
          - Create proxy model Tenant
          - Create proxy model TenantUser
          - Create model User
      
    8. Finally, attempt to create the migrations again. This time, I receive a circular reference error, which links back to the previously created migration:
      python3 manage.py makemigrations
      Traceback (most recent call last):
      [...snip...]
      django.db.migrations.exceptions.CircularDependencyError: core.0001_initial, organizations.0001_initial, organizations.0002_model_update, organizations.0003_field_fix_and_editable, organizations.0004_organizationinvitation, organizations.0005_auto_20210430_0635
      
    opened by vector-kerr 4
  • DRF Integration

    DRF Integration

    ANSWER ON THIRD COMMENT

    Hello guys,

    Thanks a lot for this outstanding work.

    I'm trying to integrate dj-organization into my DRF project and I'm having a bit of an issue. I'm struggling to filter the results the view sends back based on the user organization. I'm fairly new to Django and I'm having difficulties integrating it with DRF.

    Here is my code.

    My Organization

    from django.db import models
    from organizations.models import Organization
    
    # Create your models here.
    
    class Website(Organization):
        url = models.CharField(max_length=200)
    

    My Model which references the org

    import datetime
    from django.db import models
    from django.utils import timezone
    from org.models import Website
    
    class Extractor(models.Model):
       Org = models.ForeignKey(Website, related_name='extractor', on_delete=models.CASCADE)
       extractor_type = models.TextChoices('Extractor', 'HEADERS IMAGES LINKS')
       url = models.CharField(max_length=200)
       result = models.JSONField(blank=True, null=True)
       type_audit = models.CharField(blank=True, choices=extractor_type.choices, max_length=20)
       task_id = models.CharField(max_length=50, blank=True, null=True)
       status_job = models.CharField(max_length=30, blank=True, null=True)
       begin_date = models.DateTimeField(blank=True, null=True)
    
       def __repr__(self):
           return '<Audit {}>'.format(self.url)
    

    And my view for the Extractor Model

    Extractor view

    class ExtractorViewSet(viewsets.ModelViewSet):
        permission_classes = [permissions.IsAuthenticated]
        """
        API endpoint that allows users to be viewed or edited.
        """
        queryset = Extractor.objects.order_by('-begin_date')
        serializer_class = ExtractorSerializer
        filter_backends = [DjangoFilterBackend,filters.OrderingFilter]
        filterset_fields = ['type_audit', 'status_job']
        ordering_fields = ['id', 'type_audit', 'begin_date']
    

    My question is as follow:

    Where do I filter the Extractor object based on the user in the request.user so that he only sees the extractor for his organization ?

    I know this isn't an Issue as per say, but I'll be interested to add the answer in your documentation and an How To for others :)

    Thanks a lot. Have a great day

    opened by StanGirard 7
Releases(2.1.0)
  • 2.1.0(Oct 25, 2022)

    Adds support for Django 4.1, adds support for Python 3.11 and drops support for Python 3.6.

    Lots of thanks to @mgrdcm for the updates here!

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(May 11, 2018)

  • 0.9.0(Feb 17, 2017)

    Biggest component added here is new abstract models. Previously the concrete Organization model and friends included helpful methods for working with group accounts that the base (abstract) models lacked. A new set of abstract models include these methods to add this functionality to classes using the base models. Thanks to @nemesisdesign for suggesting, spearheading, and implementing this - 🥇

    A few documentation and minor code updates as well courtesy of @amadornimbis, @bashu, and @RobertChristopher - 🎁

    Last but not least, while not in Travis yet, the project tox configuration now covers Python 3.6 and Django 1.11 (in progress).

    Source code(tar.gz)
    Source code(zip)
  • 0.6.1(Jan 31, 2016)

  • 0.6.0(Jan 6, 2016)

    Added support for Django 1.9 and dropped support for Django 1.4. South migrations are no longer supported.

    This release also fixes a migration issue in which an extraneous migration was required, and impacted users with configurable fields/base models.

    Source code(tar.gz)
    Source code(zip)
  • 0.5.3(Jun 3, 2015)

  • 0.5.0(Apr 12, 2015)

    Properly tested against Django 1.8, including native migrations for Django 1.7+.

    Removes explicit support for Django 1.5 and Django 1.6. Will continue to support Django 1.4 (LTS version) at least as long as the Django project team continues to support it.

    Starts testing on Python 3.5 - passing!

    Source code(tar.gz)
    Source code(zip)
  • 0.4.3(Nov 18, 2014)

  • 0.4.0(Jun 6, 2014)

    Allows for configurable TimeStampModel (base mixin for default Organization model) and AutoSlugField (field on default Organization model).

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(May 26, 2014)

  • 0.2.0(May 18, 2014)

Owner
Ben Lopatin
I leverage synergies.
Ben Lopatin
Cookiecutter Django is a framework for jumpstarting production-ready Django projects quickly.

Cookiecutter Django Powered by Cookiecutter, Cookiecutter Django is a framework for jumpstarting production-ready Django projects quickly. Documentati

Daniel Feldroy 10k Dec 31, 2022
A handy tool for generating Django-based backend projects without coding. On the other hand, it is a code generator of the Django framework.

Django Sage Painless The django-sage-painless is a valuable package based on Django Web Framework & Django Rest Framework for high-level and rapid web

sageteam 51 Sep 15, 2022
Django URL Shortener is a Django app to to include URL Shortening feature in your Django Project

Django URL Shortener Django URL Shortener is a Django app to to include URL Shortening feature in your Django Project Install this package to your Dja

Rishav Sinha 4 Nov 18, 2021
Duckiter will Automatically dockerize your Django projects.

Duckiter Duckiter will Automatically dockerize your Django projects. Requirements : - python version : python version 3.6 or upper version - OS :

soroush safari 23 Sep 16, 2021
Analytics services for Django projects

django-analytical The django-analytical application integrates analytics services into a Django project. Using an analytics service with a Django proj

Jazzband 1.1k Dec 31, 2022
Ugly single sign-on for django projects only

django-usso Ugly single sign-on for django projects only. Do you have many django apps with different users? Do you want to use only one of those apps

Erwin Feser 1 Mar 1, 2022
Django Fett is an incomplete code generator used on several projects

Django Fett Django Fett is an incomplete code generator used on several projects. This is an attempt to clean it up and make it public for consumption

Jeff Triplett 6 Dec 31, 2021
A generic system for filtering Django QuerySets based on user selections

Django Filter Django-filter is a reusable Django application allowing users to declaratively add dynamic QuerySet filtering from URL parameters. Full

Carlton Gibson 3.9k Jan 3, 2023
User Authentication In Django/Ajax/Jquery

User Authentication In Django/Ajax/Jquery Demo: Authentication System Using Django/Ajax/Jquery Demo: Authentication System Using Django Overview The D

Suman Raj Khanal 10 Mar 26, 2022
✋ Auto logout a user after specific time in Django

django-auto-logout Auto logout a user after specific time in Django. Works with Python ?? ≥ 3.7, Django ?? ≥ 3.0. ✔️ Installation pip install django-a

Georgy Bazhukov 21 Dec 26, 2022
A Django app that allows visitors to interact with your site as a guest user without requiring registration.

django-guest-user A Django app that allows visitors to interact with your site as a guest user without requiring registration. Largely inspired by dja

Julian Wachholz 21 Dec 17, 2022
An example of Django project with basic user functionality and account activation.

Simple Django Login and Registration An example of Django project with basic user functionality. Screenshots Log In Create an account Authorized page

Hussein Sarea 3 Oct 19, 2022
Full-text multi-table search application for Django. Easy to install and use, with good performance.

django-watson django-watson is a fast multi-model full-text search plugin for Django. It is easy to install and use, and provides high quality search

Dave Hall 1.1k Dec 22, 2022
A django integration for huey task queue that supports multi queue management

django-huey This package is an extension of huey contrib djhuey package that allows users to manage multiple queues. Installation Using pip package ma

GAIA Software 32 Nov 26, 2022
Django CacheMiddleware has a multi-threading issue with pylibmc

django-pylibmc-bug Django CacheMiddleware has a multi-threading issue with pylibmc. CacheMiddleware shares a thread-unsafe cache object with many thre

Iuri de Silvio 1 Oct 19, 2022
Meta package to combine turbo-django and stimulus-django

Hotwire + Django This repository aims to help you integrate Hotwire with Django ?? Inspiration might be taken from @hotwired/hotwire-rails. We are sti

Hotwire for Django 31 Aug 9, 2022
django-reversion is an extension to the Django web framework that provides version control for model instances.

django-reversion django-reversion is an extension to the Django web framework that provides version control for model instances. Requirements Python 3

Dave Hall 2.8k Jan 2, 2023
Django-environ allows you to utilize 12factor inspired environment variables to configure your Django application.

Django-environ django-environ allows you to use Twelve-factor methodology to configure your Django application with environment variables. import envi

Daniele Faraglia 2.7k Jan 7, 2023
Django project starter on steroids: quickly create a Django app AND generate source code for data models + REST/GraphQL APIs (the generated code is auto-linted and has 100% test coverage).

Create Django App ?? We're a Django project starter on steroids! One-line command to create a Django app with all the dependencies auto-installed AND

imagine.ai 68 Oct 19, 2022