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

О чем этот проект Этот репозиторий с шаблонами для быстрого создания Django проекта. В шаблоне проекта настроены следующий технологий: Django gunicorn

Denis Kustov 16 Oct 20, 2022
Django model mixins and utilities.

django-model-utils Django model mixins and utilities. django-model-utils supports Django 2.2+. This app is available on PyPI. Getting Help Documentati

Jazzband 2.4k Jan 04, 2023
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
Social Media Network Focuses On Data Security And Being Community Driven Web App

privalise Social Media Network Focuses On Data Security And Being Community Driven Web App The Main Idea: We`ve seen social media web apps that focuse

Privalise 8 Jun 25, 2021
Reusable, generic mixins for Django

django-braces Mixins for Django's class-based views. Documentation Read The Docs Installation Install from PyPI with pip: pip install django-braces Bu

Brack3t 1.9k Jan 05, 2023
Buckshot++ is a new algorithm that finds highly stable clusters efficiently.

Buckshot++: An Outlier-Resistant and Scalable Clustering Algorithm. (Inspired by the Buckshot Algorithm.) Here, we introduce a new algorithm, which we

John Jung 1 Jul 02, 2022
Location field and widget for Django. It supports Google Maps, OpenStreetMap and Mapbox

django-location-field Let users pick locations using a map widget and store its latitude and longitude. Stable version: django-location-field==2.1.0 D

Caio Ariede 481 Dec 29, 2022
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
Django-Text-to-HTML-converter - The simple Text to HTML Converter using Django framework

Django-Text-to-HTML-converter This is the simple Text to HTML Converter using Dj

Nikit Singh Kanyal 6 Oct 09, 2022
Opinionated boilerplate for starting a Django project together with React front-end library and TailwindCSS CSS framework.

Opinionated boilerplate for starting a Django project together with React front-end library and TailwindCSS CSS framework.

João Vítor Carli 10 Jan 08, 2023
A Django Online Library Management Project.

Why am I doing this? I started learning 📖 Django few months back, and this is a practice project from MDN Web Docs that touches the aspects of Django

1 Nov 13, 2021
REST API con Python, Django y MySQL (GET, POST, PUT, DELETE)

django_api_mysql REST API con Python, Django y MySQL (GET, POST, PUT, DELETE) REST API con Python, Django y MySQL (GET, POST, PUT, DELETE)

Andrew 1 Dec 28, 2021
A small and lightweight imageboard written with Django

Yuu A small and lightweight imageboard written with Django. What are the requirements? Python 3.7.x PostgreSQL 14.x Redis 5.x FFmpeg 4.x Why? I don't

mint.lgbt 1 Oct 30, 2021
django app that allows capture application metrics by each user individually

Django User Metrics django app that allows capture application metrics by each user individually, so after you can generate reports with aggregation o

Reiner Marquez 42 Apr 28, 2022
🔥 Campus-Run Django Server🔥

🏫 Campus-Run Campus-Run is a 3D racing game set on a college campus. Designed this service to comfort university students who are unable to visit the

Youngkwon Kim 1 Feb 08, 2022
Utility for working with recurring dates in Django.

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

408 Jan 06, 2023
Loguru is an exceeding easy way to do logging in Python

Django Easy Logging Easy Django logging with Loguru Loguru is an exceeding easy way to do logging in Python. django-easy-logging makes it exceedingly

Neutron Sync 8 Oct 17, 2022
A middleware to log the requests and responses using loguru.

Django Loguru The extension was based on another one and added some extra flavours. One of the biggest problems with the apps is the logging and that

Tiago Silva 9 Oct 11, 2022
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 03, 2023
Django Course Project - TextCorrector

Django-TextUtils Django Course Project A tool for analyzing text data in Django backend. It is a project where you can do some of the things with you

1 Oct 29, 2021