Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.

Overview

Django Activity Stream

Join the chat at https://gitter.im/django-activity-stream/Lobby https://coveralls.io/repos/github/justquick/django-activity-stream/badge.svg?branch=master https://scrutinizer-ci.com/g/justquick/django-activity-stream/badges/quality-score.png?b=master https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjustquick%2Fdjango-activity-stream.svg?type=shield

What is Django Activity Stream?

Django Activity Stream is a way of creating activities generated by the actions on your site.

It is designed for generating and displaying streams of interesting actions and can handle following and unfollowing of different activity sources. For example, it could be used to emulate the Github dashboard in which a user sees changes to projects they are watching and the actions of users they are following.

Action events are categorized by four main components.

  • Actor. The object that performed the activity.
  • Verb. The verb phrase that identifies the action of the activity.
  • Action Object. (Optional) The object linked to the action itself.
  • Target. (Optional) The object to which the activity was performed.

Actor, Action Object and Target are GenericForeignKeys to any arbitrary Django object and so can represent any Django model in your project. An action is a description of an action that was performed (Verb) at some instant in time by some Actor on some optional Target that results in an Action Object getting created/updated/deleted.

For example: justquick (actor) closed (verb) issue 2 (object) on django-activity-stream (target) 12 hours ago

Nomenclature of this specification is based on the Activity Streams Spec: http://activitystrea.ms/

For complete documentation see Django Activity Stream Documentation

Contributors


This project exists thanks to all the people who contribute!

https://opencollective.com/django-activity-stream/contributors.svg?width=890&button=false

Sponsors

Get supported django-activity-stream with the Tidelift Subscription
Comments
  • Django 1.11 Incompatibilities

    Django 1.11 Incompatibilities

    The overall functionality to store actions via signals seems to work nicely in Django 1.11, but trying to use the activity_stream and display_action templatetags I came across some small things that are broken due to changes in 1.11.

    • actstream/templatetags/activity_tags.py, line 96:

      return render_to_string(templates, context)
      

      Context is a django.template.context.Context instance here, but in 1.11 it must be a simple dict,

      return render_to_string(templates, context.flatten())
      

      would possibly fix that, haven't fully tested it yet.

    • actstream/urls.py, top of the file:

      try:
          from django.conf.urls import url, patterns
      except ImportError:
          from django.conf.urls.defaults import url, patterns
      

      The patterns() function is not available anymore, either the url patterns need some rework or you'd have to provide your own vendorized version. In 1.9 it says:

      django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of django.conf.urls.url() instances instead.

    • actstream/views.py: All usage of render_to_response() is a problem, see https://docs.djangoproject.com/en/1.11/releases/1.10/

      The dictionary and context_instance parameters for the following functions are removed: django.shortcuts.render() django.shortcuts.render_to_response()

    The changelog tells me that the latest, officially supported Django version is 1.9. Are there any plans yet to extend support to Django 1.10+?

    opened by cb109 31
  • Documentation is not so good for newbie

    Documentation is not so good for newbie

    Hi. I just found about django-activity-stream. As a newbie, to create something like activity feeds in not a good idea. So I was very excited to use django-activity-stream. But I felt that the documentation was not up to what I can understand to. It was not so hard to grasp the idea behind. But "how-to" do x to get y, was a bit exhausting for me. I installed it, and added the app in my settings, and then I was lost! It would be really great, if the documentation was improved from a newbie's point of view. Best wishes! Thank you.

    docs 
    opened by robinlery 25
  • Deleting an object does not delete it's activity

    Deleting an object does not delete it's activity

    Consider such a signal which aims to create an activity when a user registers:

    def user_registered_activity(sender, **kwargs):
        if not kwargs.get('created', False):
            return None
        action.send(kwargs['instance'], verb='registered')
    signals.post_save.connect(user_registered_activity, 
        sender=models.get_model('auth', 'user'))
    

    Well guess what happens when the user is deleted: the actions are not.

    To keep our database sane, i use this snippet:

    def delete_object_activities(sender, **kwargs):
        """
        This signal attempts to delete any activity which is related to Action
        through a generic relation. This should keep the Action table sane.
        """
        Action.objects.filter(
            action_object_object_id=kwargs['instance'].pk,
            action_object_content_type=ContentType.objects.get_for_model(
                                                            kwargs['instance'])
            ).delete()
        Action.objects.filter(
            actor_object_id=kwargs['instance'].pk,
            actor_content_type=ContentType.objects.get_for_model(
                                                            kwargs['instance'])
            ).delete()
        Action.objects.filter(
            target_object_id=kwargs['instance'].pk,
            target_content_type=ContentType.objects.get_for_model(
                                                            kwargs['instance'])
            ).delete()
    signals.pre_delete.connect(delete_object_activities)
    

    In general, i'd recommend to just add the full snippet to actstream:

    from django.db.models import signals                                               
    from django.db import models
    from django.contrib.contenttypes.models import ContentType                         
    
    from actstream import action                                                       
    from actstream.models import Action                                                
    
    def user_registered_activity(sender, **kwargs):                                    
        if not kwargs.get('created', False):                                           
            return None
        action.send(kwargs['instance'], verb='registered')                             
    signals.post_save.connect(user_registered_activity, 
        sender=models.get_model('auth', 'user'))
    
    def delete_object_activities(sender, **kwargs):
        """
        This signal attempts to delete any activity which is related to Action         
        through a generic relation. This should keep the Action table sane.            
        """     
        Action.objects.filter(
            action_object_object_id=kwargs['instance'].pk,                             
            action_object_content_type=ContentType.objects.get_for_model(              
                                                            kwargs['instance']) 
            ).delete()                                                                 
        Action.objects.filter(
            actor_object_id=kwargs['instance'].pk,
            actor_content_type=ContentType.objects.get_for_model(                      
                                                            kwargs['instance'])        
            ).delete()
        Action.objects.filter(                                                         
            target_object_id=kwargs['instance'].pk,                                    
            target_content_type=ContentType.objects.get_for_model(                     
                                                            kwargs['instance'])        
            ).delete()
    signals.pre_delete.connect(delete_object_activities)
    
    opened by jpic 22
  • Missing target while using actor_stream

    Missing target while using actor_stream

    hi. I'm expecting troubles with actor_stream(request.user).

    for example:

    from actstream.models import actor_stream, Action
    print actor_stream(request.user)[0].target # returns None
    print Action.objects.all()[0].target # returns Target object
    

    BUT:

    from actstream.models import actor_stream, Action
    print request.user.actor_actions.all()[0].target  # returns Target object
    

    User model - this is a custom user model, configured as described in djangoproject tutorial. Target model looks like this:

    class Task(models.Model):
        id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
        user = models.ForeignKey('core_auth.User', blank=True, null=True)
        ... < more fields >
    

    Let me show you:

    >>> from actstream.models import actor_stream, Action
    >>> from core_auth.models import User
    >>> u = User.objects.get(username='fynjah')
    >>> actor_stream(u)[0].target # None
    >>> x = actor_stream(u)[0]
    >>> x
    <Action: fynjah changed status DONE 58 minutes ago>
    # BUT:
    >>> x.target_content_type
    <ContentType: Task>
    >>> x.target
    >>> x.target_object_id
    u'f08ae5ab-8c07-4929-9021-62c867f0d081'
    # AND:
    >>> u.actor_actions.all()[0].target
    <Task: wdstrm compositing>
    

    What am i doing wrong :\

    weirdness 
    opened by fynjah 18
  • documentation on registering the User model

    documentation on registering the User model

    This is more of a suggestion: I am using Userena with actstream, and I am not at all sure if I did this right to register the User model.

    class StubsConfig(AppConfig):
        name = 'stubs'
    
        def ready(self):
            registry.register(self.get_model('Band'))
            registry.register(self.get_model('Concert'))
            registry.register(self.get_model('Location'))
            from django.contrib.auth.models import User
            registry.register(User)
    

    Either way it would be nice to mention in the docs the right way to register the user model.

    docs 
    opened by brunoamaral 18
  • Replace problamatic CharField GFKs with PositiveInterField fields.

    Replace problamatic CharField GFKs with PositiveInterField fields.

    Hi,

    I just noticed an error that when you try to use any Django feature that joins GFK enabled models with other models (e.g. having GenericRelation defined on that model with some related_query_name), it produces an SQL error (PostgreSQL).

    Let's take this example model:

    class Post(models.Model):
        content = models.TextField(blank=True, null=True)
        position = models.PositiveSmallIntegerField(default=0, blank=True, editable=False)
        action_set = GenericRelation('actstream.Action', object_id_field='action_object_object_id', content_type_field='action_object_content_type', related_query_name='post')
    

    We are using https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#reverse-generic-relations here with a related_query_name defined to help sorting/filtering activity streams based on this generic related model (Post) attributes. At this point, a query like below would produce some SQL error:

    target_stream(another_object).order_by('post__position')
    

    The error produced, in particular by PostgreSQL backend is:

    operator does not exist: character varying = integer
    

    Further investigation reveals that because you are using CharField for GenericForeignKey's PK/ID part, and because by convention other Django models use PositiveIntegerField for their primary keys, Django's SQL compiler is NOT type casting the JOIN clause. Thus, the JOIN is failing from SQL backend due to an attempt to JOIN by (varchar == int) clause.

    I have successfully mitigated this issue by replacing your CharField definitions with PositiveIntegerField definitions. So, please have a look at my commit and let's discuss if there's any compelling reason to stick to CharFields.

    Thanks, Shanto

    opened by Shanto 17
  • JSONfield compatability

    JSONfield compatability

    This package is currently importing JSONfield from either django-jsonfield + django-jsonfield-compat or django_mysql, however the django-jsonfield/django-jsonfield-compat combination only supports up to django 1.9.

    I can make a PR for importing from the current preferred location, django.contrib.postgres.fields, but I just need to know if you'd also want to continue support for django =< 1.9 and therefore allow import from the existing packages.

    I am not a mysql user, but it appears no change is needed there, and importing from django_mysql is still the preferred method.

    opened by cobyrne09 15
  • Django creates migration for actstream after Foreign key to Action

    Django creates migration for actstream after Foreign key to Action

    Hello!

    I have created own model Notification. There is foreign key to actstream Action:

    class Notification(models.Model):
        user = models.ForeignKey(User)
        action = models.ForeignKey(Action)
        is_read = models.BooleanField(default=False)
    
    

    And when I run manage.py makemigrations myapp django creates one more migration for actstream. Here it is:

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    from django.db import migrations, models
    
    class Migration(migrations.Migration):
    
        dependencies = [
            ('actstream', '0001_initial'),
        ]
    
        operations = [
            migrations.RemoveField(
                model_name='action',
                name='data',
            ),
        ]
    
    

    So what should I do?

    Can I migrate it? But in which way will I migrate it in deploy?

    opened by dima-kov 13
  • Add support for django-mysql's JSONField as alternative implementation

    Add support for django-mysql's JSONField as alternative implementation

    What

    This PR adds optional support for django-mysql's JSONField (supported by MySQL 5.7+) to be used instead of the already supported django-jsonfield and Django TextField fallback.

    Why

    We are using MySQL and django-mysql's JSONField already and would like to use this library without having to rely on a different JSONField implementation. See https://github.com/justquick/django-activity-stream/issues/415

    How

    The new actstream.jsonfield module is responsible to choose a suitable JSONField implementation on startup:

    • USE_JSONFIELD = True and django-jsonfield + django-jsonfield-compat installed: Use that.
    • USE_JSONFIELD = True and django-mysql installed: Use that instead.
    • USE_JSONFIELD = False: TextField Fallback is used.

    A debug print like JSONField implementation is: <class 'django_mysql.models.fields.json.JSONField'> is done on startup to be able to manually check whether the correct implementation is chosen.

    Testing

    There already is a test named TestAppTests.test_jsonfield() that checks that attaching data to the JSONField works as intented, making that pass is the goal.

    I have updated the tox configuration to use django-mysql for the sql environments instead of django-jsonfield. Please see https://tox.readthedocs.io/en/latest/config.html#complex-factor-conditions for syntax.

    I have done local test runs with Python 2.7 and 3.7 against Django 1.11 and 2.1 using SQLite and MySQL 5.7:

    tox -e py27-django111-mysql
    tox -e py27-django111-sqlite
    tox -e py27-django21-mysql
    tox -e py27-django21-sqlite
    tox -e py37-django111-mysql
    tox -e py37-django111-sqlite
    tox -e py37-django21-mysql
    tox -e py37-django21-sqlite
    
    opened by cb109 12
  • Filter Action Error:  Field 'actor' does not generate an automatic  reverse relation and therefore cannot be used for reverse querying.

    Filter Action Error: Field 'actor' does not generate an automatic reverse relation and therefore cannot be used for reverse querying.

    Hey every one (@justquick),

    I have a django app and now I want to introduce django-activity-stream to notify users from events.

    My issue is that I can not filter actions by actor or target:

    python3.5 shell

    >>> from app import models
    >>> a = models.MyAppUser.objects.all()[1]
    >>> a
    <MyAppUser: Mark>
    >>> t = models.MyAppUser.objects.all()[2]
    >>> t
    <MyAppUser: Steve>
    >>> from actstream.models import Action
    >>> Action(actor=a, verb='POST', target=t)
    <Action: Mark POST Steve 0 minutes ago>
    >>> Action.objects.filter(actor=a)
    

    Error:

    Traceback (most recent call last):
      File "/.../lib/python3.5/site-packages/django/core/management/commands/shell.py", line 69, in handle
        self.run_shell(shell=options['interface'])
      File "/.../lib/python3.5/site-packages/django/core/management/commands/shell.py", line 61, in run_shell
        raise ImportError
    ImportError
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File "/.../lib/python3.5/site-packages/django/db/models/manager.py", line 122, in manager_method
        return getattr(self.get_queryset(), name)(*args, **kwargs)
      File "/.../lib/python3.5/site-packages/django/db/models/query.py", line 790, in filter
        return self._filter_or_exclude(False, *args, **kwargs)
      File "/.../lib/python3.5/site-packages/django/db/models/query.py", line 808, in _filter_or_exclude
        clone.query.add_q(Q(*args, **kwargs))
      File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1243, in add_q
        clause, _ = self._add_q(q_object, self.used_aliases)
      File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1269, in _add_q
        allow_joins=allow_joins, split_subq=split_subq,
      File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1149, in build_filter
        lookups, parts, reffed_expression = self.solve_lookup_type(arg)
      File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1035, in solve_lookup_type
        _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
      File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1316, in names_to_path
        "adding a GenericRelation." % name
    
    django.core.exceptions.FieldError: Field 'actor' does not generate an automatic 
    reverse relation and therefore cannot be used for reverse querying. 
    If it is a GenericForeignKey, consider adding a GenericRelation.
    

    The output of my pip freeze is:

    app==0.0.1
    coverage==4.2
    dj-database-url==0.4.1
    **Django==1.9.5**
    **django-activity-stream==0.6.3**
    django-anymail==0.5
    django-bootstrap-breadcrumbs==0.8
    django-bootstrap-datepicker==1.1.1
    django-bootstrap3==7.1.0
    django-bower==5.1.0
    django-configurations==2.0
    django-debug-toolbar==1.5
    django-formtools==1.0
    django-nose==1.4.4
    django-postman==3.3.2
    factory-boy==2.7.0
    fake-factory==0.7.2
    flake8==3.0.4
    mccabe==0.5.2
    nose==1.3.7
    Pillow==3.3.1
    psycopg2==2.6.2
    pycodestyle==2.0.0
    pyflakes==1.2.3
    python-dateutil==2.6.0
    PyYAML==3.12
    requests==2.11.1
    rollbar==0.13.6
    six==1.10.0
    sqlparse==0.2.1
    whitenoise==3.2.1
    
    

    Similar like issue 281

    opened by maguri 12
  • Abstract models [WIP]

    Abstract models [WIP]

    I just cobbled this together taking inspiration from django.contrib.auth – it's actually working quite well with minimal effort – my apps tests pass with this, the hidden swappable API is neat.

    I mostly need input on the changes made and what you want to do about various BC considerations if this is something you'd be interested in merging.

    some thoughts

    • [x] AbstractAction
    • [x] AbstractFollow
    • [x] Django migration handling (swappable handles this)
    • [ ] Strip 0002 migration?
    • [ ] Scrap JSON support entirely and leave it to developers?
    • [ ] South migration handling (no idea... suggestions?)
    • [ ] convenient accessors in models (real models aren't available yet... lazy objects?)
    • [ ] various other calls to get_model that can/should probably go
    • [ ] extra kwargs passed to action.send currently pile into data as per existing implementation - I think as of this work any extra kwargs passed should be assumed to be fields on the model – developers can retain existing behaviour by passing a data dict data={'some':'thing'}

    usage example (working my end)

    # settings.py
    ACTSTREAM_ACTION_MODEL = 'users.Action'
    ACTSTREAM_FOLLOW_MODEL = 'users.Follow'
    
    # users/models.py
    from actstream.models import AbstractAction, AbstractFollow
    from django.contrib.postgres.fields import JSONField
    from django.db import models
    from uuid import uuid4
    
    
    class Action(AbstractAction):
        id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
        data = JSONField(default={})
    
        class Meta(AbstractAction.Meta):
            db_table = 'ras_actions'
    
    
    class Follow(AbstractFollow):
        id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
    
        class Meta(AbstractFollow.Meta):
            db_table = 'ras_follows'
    

    migrations

    We discussed migrations in the other thread briefly. If you didn't know / remember (I didn't) the way the swappable behaviour works is to default to using the provided migrations. However, if the developer has supplied their own model class, your migrations are totally disabled, and instead they are generated in the developer's app.

    What this means moving forward beyond merging this is that anyone using the default model will run any new migrations you write. However, anyone else will simply inherit the new field via abstract model, and will be required to generate their own migration (simply by running makemigrations) – thus it's their problem, this is consistent with django.contrib.auth and a fairly reasonable behaviour.

    related issues

    #304 #306

    opened by stevelacey 12
  • [Feature proposal] Delete Follow objects when the followed object is deleted?

    [Feature proposal] Delete Follow objects when the followed object is deleted?

    Hi there,

    In our use case we want to delete Follow objects when the followed object is deleted. We implemented that with Django pre_delete signal, and we thought that this piece of code was generic enough to maybe be integrated in actstream.

    What do you think @justquick ? Maybe it could be conditioned to a setting if you don't want this behavior to be applied to everyone.

    If you agree I can submit a PR today :wink:

    future 
    opened by David-Guillot 1
  • Filter user feed with distinct('action_object')

    Filter user feed with distinct('action_object')

    Hello,

    first of all everything is working like a charm! I was just wondering if and how i can only display action objects that are distinct. I dont want to i.e., show duplicate comments if they have for example a different actor and target but the user is following both. I added a GenericRelation on the action object I want to filter distinct but I get a cast error. I will provide more info once I debugged further, just wanted to ask if this is even possible so I dont waste no more time on this issue.

    Br, Johannes

    question 
    opened by Quasarman 1
  • Django ReST Framework

    Django ReST Framework

    • Dynamic serializers and viewsets for the registered models in the actstream.registry
    • Default config for Action/Follow
    • Views to match (most) streams in the action manager
    • Ability to view your own actions
    • Custom serializer, viewset and permission options in settings
    • Related field evaluation using rest-framework-generic-relations

    not ready for merge yet

    #502 #286

    2.0 
    opened by justquick 28
  • Activity Stream 2 JSON Feeds

    Activity Stream 2 JSON Feeds

    We need to update the app to provide the up to date spec for v2.0 AS

    https://www.w3.org/TR/activitystreams-core/#example-1

    It's been 11 years since the 1.0 was first introduced so we are behind the times

    2.0 
    opened by justquick 0
Releases(1.4.2)
  • 1.4.2(Dec 19, 2022)

  • 1.4.0(Feb 20, 2022)

    • Django 4 support
    • Russian translations
    • Bugfix on Action.get_absolute_url
    • Set AutoField as default for app config
    • Changing minor version tracking to match Django version
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Nov 19, 2021)

    What's Changed

    • Make sure Action.data field is not added twice in ActstreamConfig by @v1kku in https://github.com/justquick/django-activity-stream/pull/463
    • Fix the description of target streams in the document by @odeson24 in https://github.com/justquick/django-activity-stream/pull/465
    • Feature of having with_user_activity=True parameter when using User Activity Feed (User Stream) url by @ehsabd in https://github.com/justquick/django-activity-stream/pull/468
    • django 3.1 by @auvipy in https://github.com/justquick/django-activity-stream/pull/461
    • Add docker env for local development by @lociii in https://github.com/justquick/django-activity-stream/pull/471
    • Use django-jsonfield-backport (and move build env to github actions) by @lociii in https://github.com/justquick/django-activity-stream/pull/474

    New Contributors

    • @v1kku made their first contribution in https://github.com/justquick/django-activity-stream/pull/463
    • @odeson24 made their first contribution in https://github.com/justquick/django-activity-stream/pull/465
    • @ehsabd made their first contribution in https://github.com/justquick/django-activity-stream/pull/468

    Full Changelog: https://github.com/justquick/django-activity-stream/compare/0.9.0...0.10.0

    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Jun 8, 2020)

  • 0.6.3(Aug 19, 2016)

  • 0.6.2(Aug 19, 2016)

    • Proxy Model support
    • Brazilian Portuguese translations
    • Added new migration to remove data field if not being used
    • URL naming changed for actstream_unfollow_all
    • Test fix
    Source code(tar.gz)
    Source code(zip)
  • 0.6.1(Mar 6, 2016)

    • Python 3.5 support
    • Django 1.9 support
    • Better AppConf compatibility
    • More gracefully 404 handling in feeds
    • New urlpatterns support
    • Added unfollow_all support view
    • Improved docs
    Source code(tar.gz)
    Source code(zip)
Owner
Justin Quick
Software Engineer and Open Source advocate. Specialized in web app development with over 10+ years of experience. Started in big media in DC, now contracting
Justin Quick
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
A fresh approach to autocomplete implementations, specially for Django.

A fresh approach to autocomplete implementations, specially for Django. Status: v3 stable, 2.x.x stable, 1.x.x deprecated. Please DO regularely ping us with your link at #yourlabs IRC channel

YourLabs 1.6k Dec 22, 2022
Book search Django web project that uses requests python library and openlibrary API.

Book Search API Developer: Vladimir Vojtenko Book search Django web project that uses requests python library and openlibrary API. #requests #openlibr

1 Dec 08, 2021
A Django based shop system

django-SHOP Django-SHOP aims to be a the easy, fun and fast e-commerce counterpart to django-CMS. Here you can find the full documentation for django-

Awesto 2.9k Dec 30, 2022
📝 Sticky Notes in Django admin

django-admin-sticky-notes Share notes between superusers. Installation Install via pip: pip install django_admin_sticky_notes Put django_admin_sticky_

Dariusz Choruży 7 Oct 06, 2021
Auto-detecting the n+1 queries problem in Python

nplusone nplusone is a library for detecting the n+1 queries problem in Python ORMs, including SQLAlchemy, Peewee, and the Django ORM. The Problem Man

Joshua Carp 837 Dec 29, 2022
Django Serverless Cron - Run cron jobs easily in a serverless environment

Django Serverless Cron - Run cron jobs easily in a serverless environment

Paul Onteri 41 Dec 16, 2022
A simple trivia quizzz web app made using django

Trivia Quizzz A simple trivia quizzz web app made using django Demo http://triviaquizzz.herokuapp.com/ & https://triviaquiz.redcrypt.xyz Features Goog

Rachit Khurana 2 Feb 10, 2022
Strict separation of config from code.

Python Decouple: Strict separation of settings from code Decouple helps you to organize your settings so that you can change parameters without having

Henrique Bastos 2.3k Jan 04, 2023
a little task queue for python

a lightweight alternative. huey is: a task queue (2019-04-01: version 2.0 released) written in python (2.7+, 3.4+) clean and simple API redis, sqlite,

Charles Leifer 4.3k Dec 29, 2022
Drf-stripe-subscription - An out-of-box Django REST framework solution for payment and subscription management using Stripe

Drf-stripe-subscription - An out-of-box Django REST framework solution for payment and subscription management using Stripe

Oscar Y Chen 68 Jan 07, 2023
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

10.1k Jan 08, 2023
mirage ~ ♪ extended django admin or manage.py command.

mirage ~ ♪ extended django admin or manage.py command. ⬇️ Installation Installing Mirage with Pipenv is recommended. pipenv install -d mirage-django-l

Shota Shimazu 6 Feb 14, 2022
This a Django TODO app project and practiced how to deploy and publish the project to Heroku

ToDo App Demo | Project Table of Contents Overview Built With Features How to use Acknowledgements Contact Overview Built With HTML CSS JS Django How

Cetin OGUT 1 Nov 19, 2021
Add Chart.js visualizations to your Django admin using a mixin class

django-admincharts Add Chart.js visualizations to your Django admin using a mixin class. Example from django.contrib import admin from .models import

Dropseed 22 Nov 22, 2022
A simple Blog Using Django Framework and Used IBM Cloud Services for Text Analysis and Text to Speech

ElhamBlog Cloud Computing Course first assignment. A simple Blog Using Django Framework and Used IBM Cloud Services for Text Analysis and Text to Spee

Elham Razi 5 Dec 06, 2022
Redia Cache implementation in django.

django-redis Recipe APP Simple Recipe app which shows different kinds off recipe to the user. Why Cache ? Accessing data from cache is much faster tha

Avinash Alanjkar 1 Sep 21, 2022
PWA is a simple Django app to develope and deploy a Progressive Web Application.

PWA PWA is a simple Django app to develope and deploy a Progressive Web Application. Detailed documentation is in the "docs" directory. Quick start Ad

Nima 6 Dec 09, 2022
Thumbnails for Django

Thumbnails for Django. Features at a glance Support for Django 2.2, 3.0 and 3.1 following the Django supported versions policy Python 3 support Storag

Jazzband 1.6k Jan 03, 2023
Template de desarrollo Django

Template de desarrollo Django Python Django Docker Postgres Nginx CI/CD Descripción del proyecto : Proyecto template de directrices para la estandariz

Diego Esteban 1 Feb 25, 2022