sql >> Database >  >> RDS >> PostgreSQL

SQLite werkt, maar door PostgreSQL gemigreerde database veroorzaakt ERROR - Django 3.0

Ik weet niet zeker of ik kan helpen, maar ik heb een Mac, gebruik Django en had wat problemen met PostgreSQL, dus ik zal mijn ideeën delen.

Ten eerste lijkt het mij dat het probleem inderdaad de verbinding met de database is, niet de code. Ik heb je fout opgezocht in de Django-code, er staat:

    def _get_response(self, request):
        """
        Resolve and call the view, then apply view, exception, and
        template_response middleware. This method is everything that happens
        inside the request/response middleware.
        """
        ...

        # Complain if the view returned None (a common error).
        if response is None:
            ...

            raise ValueError(
                "The view %s.%s didn't return an HttpResponse object. It "
                "returned None instead." % (callback.__module__, view_name)
            )

Hoewel ik zeker geen expert ben op het gebied van middleware, ontvangt Django blijkbaar geen gegevens uit uw database.

Ik had ooit problemen met verschillende versies van PostgreSQL op mijn Mac. Je kunt /Library/PostgreSQL inchecken, ik heb twee mappen (11 en 12), dus ik moet voorzichtig zijn welke ik voor mijn projecten gebruik. In PgAdmin zie je beide versies. Als je oude versies hebt of PostgreSQL opnieuw wilt installeren (wat behoorlijk ingrijpend is maar je een schone lei zou geven), is hier een goede handleiding:https://medium.com/@zoefhall/ Effectively-uninstall-and-reinstall-psql-with-homebrew- on-osx-fabbc45c5d9d . U kunt de versie controleren die uw Django gebruikt door uw Shell in te typen:

python3 manage.py shell -c "from django.db import connection; print(connection.cursor().connection.server_version)"

Voor mij is het resultaat 110005, wat zich vertaalt in 11.0.5.

Ik heb ook meerdere keren problemen gehad met psycopg2. Installatie ervan is nodig wanneer je je virtuele omgeving met Django hebt opgezet, dus als dat gelukt is, is dat waarschijnlijk goed gegaan. Het probleem dat ik had was dat het het configuratiebestand niet kon vinden, en de gemakkelijkste oplossing voor mij was om de binaire versie psycopg2-binary te installeren. Maar als je een specifieke versie van PostgreSQL op je Mac wilt, dan moet je het pg_config-bestand in je PATH plaatsen, zie https://www.psycopg.org/docs/install.html .

Dat is wat ik heb geleerd, ik hoop dat het je een beetje helpt.



  1. Oracle ODP.net beheerd versus onbeheerd stuurprogramma

  2. Uren tellen met MySQL

  3. Verkrijg aanvullende gegevens in de vervolgkeuzelijst van het django-formulier

  4. Hoe maak je een gepartitioneerde PostgreSQL-reeks?