Modular search for Django

Related tags

Djangodjango-haystack
Overview

Haystack

Author: Daniel Lindsley
Date: 2013/07/28

Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify your code.

Haystack is BSD licensed, plays nicely with third-party app without needing to modify the source and supports advanced features like faceting, More Like This, highlighting, spatial search and spelling suggestions.

You can find more information at http://haystacksearch.org/.

Getting Help

There is a mailing list (http://groups.google.com/group/django-haystack/) available for general discussion and an IRC channel (#haystack on irc.freenode.net).

Documentation

See the changelog

Build Status

https://travis-ci.org/django-haystack/django-haystack.svg?branch=master

Requirements

Haystack has a relatively easily-met set of requirements.

Additionally, each backend has its own requirements. You should refer to https://django-haystack.readthedocs.io/en/latest/installing_search_engines.html for more details.

Comments
  • django_ct error with Solr 5.5.4/6.4.1 and Haystack 2.6.0

    django_ct error with Solr 5.5.4/6.4.1 and Haystack 2.6.0

    • [x] Tested with the latest Haystack release
    • [ ] Tested with the current Haystack master branch

    Expected behavior

    Haystack responds as expected (with an appropriate JSON response) and is able to be queried using a Solr backend

    Actual behavior

    500 Internal Server Error: KeyError: 'django_ct'

    Steps to reproduce the behavior

    1. Create Django project and add a model
    2. You can try using the build_solr_schema command, but that produces an output incompatible (deprecated field types) with both Solr 6.4.1 and Solr 5.5.4 (so I basically have been trying to use this for the schema. I have tried using the schema output from both cases mentioned in both Solr 6.4.1 and Solr 5.5.4 but have not had any luck.
    3. I have ensured the django_id and django_ct are defined as fields but that does not seem to be the issue here.

    I suppose my main question to the community is whether or not anyone has gotten Haystack working with Solr 5.5.4 or Solr 6.4.1? I don't feel we should have to downgrade Solr any further due to lack of new features and for security reasons. Currently in our Django application we are using PySolr directly to query Solr and return JSON. Thanks for your time!

    Configuration

    • Operating system version: Ubuntu 16.04.2 LTS
    • Search engine version: Solr 6.4.1 and Solr 5.5.4
    • Python version: 3.5.2
    • Django version: 1.10.5
    • Haystack version: 2.6.0
    opened by elitzer2 51
  •  Add ElasticSearch 5.0 support

    Add ElasticSearch 5.0 support

    elasticsearch 5.0 is in alpha already and should be added on future release of haystack. Maybe skipping ealsticsearch 2.0 support would be an option. elasticsearch-py already supports elasticsearch 5.0

    https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-5.0.html

    feature backend : elasticsearch decision needed 
    opened by JanMalte 44
  • Solr 5 support

    Solr 5 support

    Continuing and finishing PR #1148 after @acdha comment https://github.com/django-haystack/django-haystack/pull/1148#issuecomment-172620864

    Test coverage seems good as well as Travis builds. Rebase from master is freshly done

    Thanks for considering merging it.


    This change is Reviewable

    highpriority backend : solr dependency updates 
    opened by elishowk 37
  • LookupError with Django 1.7 and an app without models.py

    LookupError with Django 1.7 and an app without models.py

    I'm in the process of upgrading a project to Django 1.7. Rebuilding or updating the haystack index fails in combination with django-grappelli's dashboard. Please note, that in latest grappelli, the dashboard module/app doesn't have a models.py (which is allowed in Django 1.7 as far as i understand).

    $ ./manage.py rebuild_index
    
    WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'.
    Your choices after this are to restore from backups or rebuild via the `rebuild_index` command.
    Are you sure you wish to continue? [y/N] y
    Removing all documents from your index because you said so.
    All documents removed.
    ERROR:root:Error updating grappelli.dashboard using default 
    Traceback (most recent call last):
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 189, in handle_label
        self.update_backend(label, using)
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 203, in update_backend
        for model in get_models(label):
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/utils/app_loading.py", line 41, in get_models
        return [apps.get_app_config(app_label).get_model(model_name)]
    File "/path/to/env/local/lib/python2.7/site-packages/django/apps/config.py", line 166, in get_model
        "App '%s' doesn't have a '%s' model." % (self.label, model_name))
    LookupError: App 'grappelli' doesn't have a 'dashboard' model.
    Traceback (most recent call last):
    File "./manage.py", line 10, in <module>
        execute_from_command_line(sys.argv)
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
        utility.execute()
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
        self.execute(*args, **options.__dict__)
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
        output = self.handle(*args, **options)
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py", line 16, in handle
        call_command('update_index', **options)
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 115, in call_command
        return klass.execute(*args, **defaults)
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
        output = self.handle(*args, **options)
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 184, in handle
        return super(Command, self).handle(*items, **options)
    File "/path/to/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 503, in handle
        label_output = self.handle_label(label, **options)
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 189, in handle_label
        self.update_backend(label, using)
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 203, in update_backend
        for model in get_models(label):
    File "/path/to/env/local/lib/python2.7/site-packages/haystack/utils/app_loading.py", line 41, in get_models
        return [apps.get_app_config(app_label).get_model(model_name)]
    File "/path/to/env/local/lib/python2.7/site-packages/django/apps/config.py", line 166, in get_model
        "App '%s' doesn't have a '%s' model." % (self.label, model_name))
    LookupError: App 'grappelli' doesn't have a 'dashboard' model.
    

    Django: 1.7.1 django-haystack: 2.3.1 django-grappelli: 2.6.2

    INSTALLED_APPS = (
        'grappelli.dashboard',
        'grappelli',
        # ...
        'haystack',
    )
    

    The management command works when 'grappelli.dashboard' is removed from INSTALLED_APPS.

    bug highpriority 
    opened by deschler 37
  • Support for Elasticsearch 5.x

    Support for Elasticsearch 5.x

    Based on #1460 - will be properly rebased once it's accepted.

    So far only two features seem to be failing, according to the test suite:

    • Faceted search (ES seems to throw an error about fielddata)
    • Autocomplete

    Any help to solve any of those would be appreciated.

    opened by ElSaico 35
  • Added generic class based search views

    Added generic class based search views

    This addresses the need for django-haystack's django style class based views. This is based on the discussion from the following PR:

    • https://github.com/toastdriven/django-haystack/pull/826

    This work was originally done by @bennylope with only minor changes from his original file:

    • https://github.com/bennylope/elasticstack/blob/master/elasticstack/views.py

    This PR addresses the following issues:

    • Fixes #348
    • Fixes #350
    • Fixes #873
    • Resolves #826
    • Resolves #1131
    • Fixes many tests that were previously broken prior to this PR
    opened by troygrosfield 31
  • Django 2.0 compatibility

    Django 2.0 compatibility

    Hi, this PR adds Django 2.0 compatibility. As the PR https://github.com/django-haystack/django-haystack/pull/1557 did not see any progress recently I implemented everything needed for Django 2.0 compatibility here.

    In particular I rewrote the rebuild_index command to strip certain arguments that are not used in the clear_index and update_index commands respectively. This is implemented in a relatively adhoc way, however looking at the amount of changes made to rebuild_index in the past I figured this might be the easiest way to implement this change.

    Additionally I added Django 2.0 to the tests and excluded the combination Django2.0 + Python2.7 from the test suite so that the tests still pass. Maybe one should also consider adding python 3.6 to the test suite, however I did not do that yet.

    Also note the change I made to test_haystack/solr_tests/test_solr_backend.py. This was necessary due to the recent update in pysolr. That update broke the django-haystack tests, as pysolr.__version__ is now a string instead of a tuple. The fix I implemented should be backwards compatible.

    Please let me know if there is anything this MR needs to get merged, cheers, Martin

    opened by mpauly 26
  • Solr6 template upgrade

    Solr6 template upgrade

    This is the Major upgrade addressing #1502 and started in #1488 to handle Solr6 (specifically 6.4 and 6.5). It adds new command parameters to build_solr_schema. The two new options allow you to specify a directory to put the config files in, and to automatically reload the core. This involved putting a new HAYSTACK_CONNECTIONS variable in place 'ADMIN_URL'.

    One major change was that the template got renamed to schema.xml in the template directory instead of solr,xml

    Along the way spelling suggestions format parsing was updated and handled (though the legacy style of returning only one suggestion was maintained -- we now have the plumbing to supply multiple). Upgrades were made to the tests to test spelling suggestion without collation to improve code coverage.

    Upgrades were also made to handle django 11 by fixing the context passing to be native dicts in the main code base and the tests.

    PEP8 changes were made, though not exhaustively.

    Updated the Travis config to only use Trusty images as the others didn't have access to Oracle8 which was also required for newer Solr. Expanded test matrix to handle Django 1.11

    TBD: Upgrade haystack to handle multiple spelling suggestions for Solr Something about ExtendedCollation from @acdha's other comments Expand matrix to handle multiple Solr versions (don't know what a reasonable anchor version is) probably many more:)

    opened by RabidCicada 24
  • ElasticSearch 2.0 support

    ElasticSearch 2.0 support

    Gives haystack support for Elasticsearch 2.x

    • Adds a new backend haystack.backends.elasticsearch2_backend.Elasticsearch2SearchEngine
    • Reuses the code and tests for ES 1.x
    • Changes facets (aggregations on ES 2.x)
    • Changes delete_by_query (scroll API and bulk actions)
    • "more like this" (More Like This Query)
    • Modifies the dependecy on elasticsearch library version

    Issue: https://github.com/django-haystack/django-haystack/issues/1247

    highpriority needs review backend : elasticsearch 
    opened by PedroAquilino 24
  • Adaptations for Solr 5.0.0

    Adaptations for Solr 5.0.0

    Solr 5.0.0 is easy to deploy with cloud Cores with automatic managed-schema and no more schem.xml. Solr 5.0.0 can edit a core's configuration via with the Schema REST API. This is what this pull request does. Along with an updated documentation.

    Refers to issue #1147 and try to resolve it...

    backend : solr needs review 
    opened by elishowk 22
  • WIP: Django 1.9 updates and fixes

    WIP: Django 1.9 updates and fixes

    Remove django.conf.urls.patterns, since they already have been removed from the doc and will be removed in Django 2.0

    This removes in Django 1.9 the warning:

    RemovedInDjango110Warning: 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.
      name='redactor_upload_file'),
    

    Also Updates the command update_index to match new arguments parser in Django

    needs review 
    opened by mariocesar 20
  • AWS open search compatibility (should be quick to fix)

    AWS open search compatibility (should be quick to fix)

    • [ X] Tested with the current Haystack master branch

    Expected behaviour

    index is built

    Actual behaviour

    index is not built due to incompatibility with open search

    Steps to reproduce the behaviour

    try use AWS open search (which is elastic compatible with haystacks)

    Configuration

    • Operating system version: docker python
    • Search engine version: AWS opensearch
    • Python version: 3.10.1
    • Django version: 4.1.3
    • Haystack version: 3.2.1

    Im trying to use AWS open search with Django Haystacks, which is fully compatible (Amazon have suggested). However when I try launch "./manage.py rebuild_index" when pointing a connection at the platform I am met with the error

        Traceback (most recent call last):
          File "/data/app/myapp/./manage.py", line 22, in <module>
            execute_from_command_line(sys.argv)
          File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
            utility.execute()
          File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
            self.fetch_command(subcommand).run_from_argv(self.argv)
          File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
            self.execute(*args, **cmd_options)
          File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
            output = self.handle(*args, **options)
          File "/usr/local/lib/python3.10/site-packages/haystack/management/commands/rebuild_index.py", line 64, in handle
            call_command("clear_index", **clear_options)
          File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 198, in call_command
            return command.execute(*args, **defaults)
          File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
            output = self.handle(*args, **options)
          File "/usr/local/lib/python3.10/site-packages/haystack/management/commands/clear_index.py", line 64, in handle
            backend.clear(commit=self.commit)
          File "/usr/local/lib/python3.10/site-packages/haystack/backends/elasticsearch7_backend.py", line 117, in clear
            self.conn.indices.delete(index=self.index_name, ignore=404)
          File "/usr/local/lib/python3.10/site-packages/elasticsearch/client/utils.py", line 347, in _wrapped
            return func(*args, params=params, headers=headers, **kwargs)
          File "/usr/local/lib/python3.10/site-packages/elasticsearch/client/indices.py", line 334, in delete
            return self.transport.perform_request(
          File "/usr/local/lib/python3.10/site-packages/elasticsearch/transport.py", line 421, in perform_request
            _ProductChecker.raise_error(self._verified_elasticsearch)
          File "/usr/local/lib/python3.10/site-packages/elasticsearch/transport.py", line 638, in raise_error
            raise UnsupportedProductError(message)
        elasticsearch.exceptions.UnsupportedProductError: The client noticed that the server is not a supported distribution of Elasticsearch
    

    when we've dug into this by looking in "site-packages/elasticsearch/transport.py" and the differences between the amazon headers and an elastic search header the only differences between the two is that amazon openserach "build_flavour" in it. Build flavour is used in the check_product function from transport.py

        @classmethod
            def check_product(cls, headers, response):
                # type: (dict[str, str], dict[str, str]) -> int
                """Verifies that the server we're talking to is Elasticsearch.
                Does this by checking HTTP headers and the deserialized
                response to the 'info' API. Returns one of the states above.
                """
            try:
                version = response.get("version", {})
                version_number = tuple(
                    int(x) if x is not None else 999
                    for x in re.search(
                        r"^([0-9]+)\.([0-9]+)(?:\.([0-9]+))?", version["number"]
                    ).groups()
                )
            except (KeyError, TypeError, ValueError, AttributeError):
                # No valid 'version.number' field, effectively 0.0.0
                version = {}
                version_number = (0, 0, 0)
    
            # Check all of the fields and headers for missing/valid values.
            try:
                bad_tagline = response.get("tagline", None) != "You Know, for Search"
                bad_build_flavor = version.get("build_flavor", None) != "default"
                bad_product_header = (
                    headers.get("x-elastic-product", None) != "Elasticsearch"
                )
            except (AttributeError, TypeError):
                bad_tagline = True
                bad_build_flavor = True
                bad_product_header = True
    
            # 7.0-7.13 and there's a bad 'tagline' or unsupported 'build_flavor'
            if (7, 0, 0) <= version_number < (7, 14, 0):
                if bad_tagline:
                    return cls.UNSUPPORTED_PRODUCT
                elif bad_build_flavor:
                    return cls.UNSUPPORTED_DISTRIBUTION
    
            elif (
                # No version or version less than 6.x
                version_number < (6, 0, 0)
                # 6.x and there's a bad 'tagline'
                or ((6, 0, 0) <= version_number < (7, 0, 0) and bad_tagline)
                # 7.14+ and there's a bad 'X-Elastic-Product' HTTP header
                or ((7, 14, 0) <= version_number and bad_product_header)
            ):
                return cls.UNSUPPORTED_PRODUCT
    
            return True
    

    I commented out the build flavour checks in this function, and then the index built successfully! but ive noticed the file "elasticsearch/transport.py" and the code "def check_product" doesn't exist in this repo. I don't know where this is pulled from or how I can create a build that will comment out these lines

    Thanks

    opened by ajwillo 0
  • 1stpull

    1stpull

    Hey, thanks for contributing to Haystack. Please review the contributor guidelines and confirm that the tests pass with at least one search engine.

    Once your pull request has been submitted, the full test suite will be executed on https://github.com/django-haystack/django-haystack/actions/workflows/test.yml. Pull requests with passing tests are far more likely to be reviewed and merged.

    opened by HamLuci-byte 0
  • Relation to Deepset AI Haystack

    Relation to Deepset AI Haystack

    We are considering refactoring our enterprise search engine using NLP + Elasticsearch. Researching this topic - reading articles and watching some videos, I encountered Haystack - the solution provided by DeepsetAI. But since our backend is written in Django, I eventually came across this repository.

    So I was wondering, what is the relation between django-haystack and deepset-ai-haystack? Are they both based on the same underlying technology (like ES and Solr are based on Lucene)? Is one the fork of another?

    I'm just trying to gather as much information as possible before committing to one or the other solution.

    opened by ruslaniv 0
  • Cannot index proxy model

    Cannot index proxy model

    • [x] Tested with the latest Haystack release
    • [x] Tested with the current Haystack master branch

    Expected behaviour

    Given I have a proxy model class:

    class CustomOrder(Order):
        class Meta:
            proxy = True
    

    And an index for the parent model:

    class OrderIndex(BaseIndex):
        def get_model(self):
            return Order
    

    I would expect that instances of the proxy model class would be included in the index.

    Actual behaviour

    Instances of CustomOrder are ignored when indexing.

    Is there a way to have the CustomOrder class included in the OrderIndex so that both the CustomOrder and Order class go to the one index?

    opened by dfollent 0
  • Loss of result information in Solr range facet query

    Loss of result information in Solr range facet query

    • [X] Tested with the latest Haystack release
    • [X] Tested with the current Haystack master branch

    Expected behaviour

    When we do a range facet query with open bound option (which is for now not part of Haystack but will be available once #978 is merged), Solr may return after, before, start and end fields as well as "counts" in the result (see Solr doc). These fields should be used in the transformed result. e.g. for a raw range result of:

    {'price': {'counts': ['0.0', 0, '30.0', 0, '60.0', 0, '90.0', 0, '120.0', 0, '150.0', 3, '180.0', 1], 'gap': 30.0, 'before': 0, 'after': 5, 'between': 4, 'start': 0.0, 'end': 210.0}}
    

    we would expects haystack to return the following range result:

    {'price': [('0.0', 0), ('30.0', 0), ('60.0', 0), ('90.0', 0), ('120.0', 0), ('150.0', 3), ('180.0', 1), (210.0, 5)]}
    

    I don't see any way to represent the [* to 0] range (result given in before field) in current haystack representation, any idea?

    Actual behaviour

    "after" and "end" raw result fields are ignored

    e.g. for a raw range result of:

    {'price': {'counts': ['0.0', 0, '30.0', 0, '60.0', 0, '90.0', 0, '120.0', 0, '150.0', 3, '180.0', 1], 'gap': 30.0, 'before': 0, 'after': 5, 'between': 4, 'start': 0.0, 'end': 210.0}}
    

    we get the following:

    {'price': [('0.0', 0), ('30.0', 0), ('60.0', 0), ('90.0', 0), ('120.0', 0), ('150.0', 3), ('180.0', 1)}
    

    The fact that there is 5 results for the "210 and more" facet is lost and we even lose the fact that the last range is 180-210 and not 180+

    Steps to reproduce the behaviour

    1. Implement range faceting
    2. create range query using start, gap, end and other=after options
    3. Look at the result

    Configuration

    • Operating system version: Debian GNU/Linux 10 (buster)
    • Search engine version: Apache Solr™ version 8.8.2
    • Python version: Python 3.10.2
    • Django version: 3.2.15 / 4.0
    • Haystack version: 3.2.1
    opened by Chadys 0
Releases(v3.1.0)
  • v3.1.0(Aug 27, 2021)

    • Considerable code and CI/CD cleanup thanks to @dulmandakh, @asedeno, @Cabalist
    • Per-field configuration of Whoosh analysis by @denizdogan
    • Whoosh faceting and other improvements thanks to @asedeno
    • ElasticSearch 7 support thanks to @Surgo
    • ElasticSearch 5 .models() support thanks to @puzzlet
    • Minutes granularity for update_index management command thanks to @yeago
    • update_index fix thanks to @nikolaysm
    Source code(tar.gz)
    Source code(zip)
  • v3.0b1(Feb 13, 2020)

  • v2.7.0(Jun 15, 2018)

  • v2.4.0(Jun 5, 2015)

    New Features & Fixes

    • Django 1.8 is supported (see #1175, #1165, #1162, #1137)
    • AppConfig is fully supported for Django 1.7+ (#1152)
    • During indexing, the process method can raise haystack.exceptions.SkipDocument to skip individual records which are not be easily excluded using index_queryset
    • ElasticSearch: distance queries and compatibility changes with the elasticsearch client library have been fixed
    • The new generic_views module uses the standard Django classes to replace the older views module
    • SearchQuerySet’s narrow() method now accepts SQ instances

    Deprecations

    • Python 2.6 is no longer supported
    • Django 1.5 is no longer supported
    • The old class-based views which predated Django's CBVs have been deprecated in favor of the new generic_views module using the standard Django classes. See #1130.
    • Several undocumented spatial search methods have been removed: SearchQuerySet.order_by_distance(), and the add_spatial() and add_order_by_distance() methods on SolrSearchQuery or ElasticsearchSearchQuery. The standard order_by('distance') and other spatial query methods in the documentation are unaffected.
    • The old haystack.utils.method_decorator has been removed since all supported versions of Django have django.utils.decorator.method_decorator.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Aug 3, 2014)

    • #951: Complete refactoring of the test suite (thanks @HonzaKral!) which makes it easier to use and faster
    • #407: Fixed doc: query is context variable and not in request
    • #413: Fixed warning when models() is called with an unregistered model
    • #775: Avoid unnecessary db query on index update
    • #795: Improve error message for duplicate index classes
    • #840, #807: Incorrect Clean input behaviour for Elasticsearch engine
    • 30afd1f Fixed a missed raw_input call on Python 3
    • #847: Fixed an update_index bug when using multiple connections
    • 1cfb6c6 Pass using to index_queryset for update
    • 4956486 Fixed simple backend for Django 1.6, _fields was removed.
    • 3ef5644 Fixed autocomplete() method with spaces in query
    • #575 & #838: fixed an incompatibility with Whoosh 2.5>
    • ab145f3 Fixed ValueError exception when SILENTLY_FAIL=True
    • #886: Use Filtered queries more efficiently for elasticsearch
    • #899: Use HTML5
    • #885: Use elasticsearch-py instead of pyelasticsearch
    • #775, #718: Fix bounding box calculation for spatial queries
    • 6d3daa6 Whoosh: allow multiple order_by() fields
    • f7d4fad131a8a195742dcabacaeb3ea4a3c0abc7 Simplified mappings for ElasticSearch fields
    • #888: run() kwargs are passed directly to search backend, fixing values_list and making subclassing easier (Solr, ElasticSearch)
    • Solr backend: correct usage of pysolr delete (#943)
    • Small docs fix for spatial search example code (#946)
    • Fix logging call in SQS post_process_results (see #648)
    • ElasticSearch: avoid KeyError for empty spelling suggestions (thanks @skoczen)
    • RelatedSearchQuerySet: move class globals to instance properties, avoiding conflicts with multiple instances
    • Update ElasticSearch for 1.0+ syntax 0043fac849dbb6cda7a4597821b27cbb7e87f9d9

    Closes #1029

    Source code(tar.gz)
    Source code(zip)
Django/Jinja template indenter

DjHTML A pure-Python Django/Jinja template indenter without dependencies. DjHTML is a fully automatic template indenter that works with mixed HTML/CSS

Return to the Source 378 Jan 01, 2023
Media-Management with Grappelli

Django FileBrowser Media-Management with Grappelli. The FileBrowser is an extension to the Django administration interface in order to: browse directo

Patrick Kranzlmueller 913 Dec 28, 2022
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
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
:couple: Multi-user accounts for Django projects

django-organizations Summary Groups and multi-user account management Author Ben Lopatin (http://benlopatin.com / https://wellfire.co) Status Separate

Ben Lopatin 1.1k Jan 01, 2023
Django API that scrapes and provides the last news of the city of Carlos Casares by semantic way (RDF format).

"Casares News" API Api that scrapes and provides the last news of the city of Carlos Casares by semantic way (RDF format). Usage Consume the articles

Andrés Milla 6 May 12, 2022
This is a repository for a web application developed with Django, built with Crowdbotics

assignment_32558 This is a repository for a web application developed with Django, built with Crowdbotics Table of Contents Project Structure Features

Crowdbotics 1 Dec 29, 2021
Django React - Purity Dashboard (Open-Source) | AppSeed

Django React Purity Dashboard Start your Development with an Innovative Admin Template for Chakra UI and React. Purity UI Dashboard is built with over

App Generator 19 Sep 19, 2022
Let AngularJS play well with Django

django-angular Let Django play well with AngularJS What does it offer? Add AngularJS directives to Django Forms. This allows to handle client side for

Jacob Rief 1.2k Dec 27, 2022
This is raw connection between redis server and django python app

Django_Redis This repository contains the code for this blogpost. Running the Application Clone the repository git clone https://github.com/xxl4tomxu9

Tom Xu 1 Sep 15, 2022
django-reversion is an extension to the Django web framework that provides version control for model instances.

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

Dave Hall 2.8k Jan 02, 2023
Quick example of a todo list application using Django and HTMX

django-htmx-todo-list Quick example of a todo list application using Django and HTMX Background Modified & expanded from https://github.com/jaredlockh

Jack Linke 54 Dec 10, 2022
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 reusable Django app that configures your project for deployment

django-simple-deploy This app gives you a management command that configures your project for an initial deployment. It targets Heroku at the moment,

Eric Matthes 205 Dec 26, 2022
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
Simple reproduction of connection leak with celery/django/gevent

Redis connection leak with celery/django/gevent Reproduces celery issue at https://github.com/celery/celery/issues/6819 using gevented django web serv

2 Apr 03, 2022
A music recommendation REST API which makes a machine learning algorithm work with the Django REST Framework

music-recommender-rest-api A music recommendation REST API which makes a machine learning algorithm work with the Django REST Framework How it works T

The Reaper 1 Sep 28, 2021
Send logs to RabbitMQ from Python/Django.

python-logging-rabbitmq Logging handler to ships logs to RabbitMQ. Compatible with Django. Installation Install using pip. pip install python_logging_

Alberto Menendez Romero 38 Nov 17, 2022
A Blog Management System Built with django

Blog Management System Backend use: Django Features Enhanced Ui

Vishal Goswami 1 Dec 06, 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