J'ai un problème lorsque je crée un objet dans mon administrateur Django. Il m'affiche cette erreur :

LINE 1: SELECT (1) AS "a" FROM "license_portal_client" WHERE

Voici mon Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

Voici mon docker-compose.yml:

version: '3'
    
services:
  db:
    image: postgres
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
  web:
    build: .
    command: python license_portal/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

Ma base de données settings.py et j'ai ajouté mon application sur les applications installées :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

Et voici mon models.py :

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30) 

Et mon admin.py :

from django.contrib import admin
from license_portal.models import Person

admin.site.register(Person)
0
Caike Colantonio 15 sept. 2020 à 18:22

1 réponse

Meilleure réponse

Cela est probablement dû au fait que votre base de données n'est pas migrée. Essayez d'exécuter la commande django migrate à partir d'un conteneur django et arrêtez toutes les connexions de base de données existantes que vous pourriez avoir, comme le conteneur web exécutant le serveur de développement.

# Stop all of the running containers to release all db connections
docker-compose stop

# Run the migrate command inside of the django container
docker-compose run web python license_portal/manage.py migrate

# Start all of the containers again to access your dev server
docker-compose up web
0
damon 15 sept. 2020 à 15:38