: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)

Official Python agent for the Elastic APM

elastic-apm -- Elastic APM agent for Python This is the official Python module for Elastic APM. It provides full out-of-the-box support for many of th

elastic 369 Jan 05, 2023
this is a simple backend for instagram with python and django

simple_instagram_backend this is a simple backend for instagram with python and django it has simple realations and api in 4 diffrent apps: 1-users: a

2 Oct 20, 2021
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
Application made in Django to generate random passwords as based on certain criteria .

PASSWORD GENERATOR Welcome to Password Generator About The App Password Generator is an Open Source project brought to you by Iot Lab,KIIT and it brin

IoT Lab KIIT 3 Oct 21, 2021
Probably the best abstract model / admin for your tree based stuff.

django-treenode Probably the best abstract model / admin for your tree based stuff. Features Fast - get ancestors, children, descendants, parent, root

Fabio Caccamo 360 Jan 05, 2023
Intellicards-backend - A Django project bootstrapped with django-admin startproject mysite

Intellicards-backend - A Django project bootstrapped with django-admin startproject mysite

Fabrizio Torrico 2 Jan 13, 2022
This is a repository for collecting global custom management extensions for the Django Framework.

Django Extensions Django Extensions is a collection of custom extensions for the Django Framework. Getting Started The easiest way to figure out what

Django Extensions 6k Dec 26, 2022
AUES Student Management System Developed for laboratory works №9 Purpose using Python (Django).

AUES Student Management System (L M S ) AUES Student Management System Developed for laboratory works №9 Purpose using Python (Django). I've created t

ANAS NABIL 2 Dec 06, 2021
Djangoblog - A blogging platform built on Django and Python.

djangoblog 👨‍💻 A blogging platform built on Django and Python

Lewis Gentle 1 Jan 10, 2022
Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.

Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards in settings file paths and mark setti

Nikita Sobolev 940 Jan 03, 2023
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
English dictionary using Django based on freecodecamp

English Dictionary Hi there, i made this english dictionary using Django based on freecodecamp.org tutorial :) Table of Contents Preview Technologies

Aline Alencar 3 May 09, 2022
Django + AWS Elastic Transcoder

Django Elastic Transcoder django-elastic-transcoder is an Django app, let you integrate AWS Elastic Transcoder in Django easily. What is provided in t

StreetVoice 66 Dec 14, 2022
Django query profiler - one profiler to rule them all. Shows queries, detects N+1 and gives recommendations on how to resolve them

Django Query Profiler This is a query profiler for Django applications, for helping developers answer the question "My Django code/page/API is slow, H

Django Query Profiler 116 Dec 15, 2022
Django-MySQL extends Django's built-in MySQL and MariaDB support their specific features not available on other databases.

Django-MySQL The dolphin-pony - proof that cute + cute = double cute. Django-MySQL extends Django's built-in MySQL and MariaDB support their specific

Adam Johnson 504 Jan 04, 2023
Projeto onde podes inserir notícias, ver todas as notícias guardas e filtrar por tag. A base de dados usada é o mongoDB.

djangoProject Projeto onde podes inserir notícias, ver todas as notícias guardas e filtrar por tag. A base de dados usada é o mongoDB. packages utiliz

Sofia Rocha 1 Feb 22, 2022
Django channels basic chat

Django channels basic chat

Dennis Ivy 41 Dec 24, 2022
A app for managing lessons with Django

Course Notes A app for managing lessons with Django Some Ideas

Motahhar.Mokfi 6 Jan 28, 2022
A Django app that creates automatic web UIs for Python scripts.

Wooey is a simple web interface to run command line Python scripts. Think of it as an easy way to get your scripts up on the web for routine data anal

Wooey 1.9k Jan 08, 2023
xsendfile etc wrapper

Django Sendfile This is a wrapper around web-server specific methods for sending files to web clients. This is useful when Django needs to check permi

John Montgomery 476 Dec 01, 2022