Files
gauvainboiche 0d071d2843 Semaine 11
2026-07-11 21:38:00 +02:00

4.5 KiB

Exo 4.1 "Projet Django" - BOICHÉ Gauvain

Je déclare n'avoir pas utilisé l'IA sur ce projet au profit de la documentation du cours et celle de Django.

Exo 4.2 "Lister des équipements" - BOICHÉ Gauvain

Je déclare avoir utilisé l'IA dans ces cadres :

Raison 1

Génération de "list.html"

Pourquoi ?

Je n'aime pas l'HTML.

Ce que j'en ai retenu

Tout le contenu donné semble correct.

Raison 2

Pour déboguer la raison pour laquelle mon fichier "list.html" n'était pas trouvé par le projet.

Ce que l'IA m'a répondu

The template parc/list.html exists at templates/parc/list.html, but Django's app_directories loader is searching inside each app's own templates/ folder — not the project-level one.

Fix: declare the project-level templates directory in TEMPLATES settings.

Ce que j'ai rajouté

De :

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

à :

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [BASE_DIR / "templates"],
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
            ],
        },
    },
]

Conséquences

Ca ne marchait toujours pas, et l'IA m'a mis sur une piste à la noix qui n'est pas évidente : j'ai réorganisé un peu mon arborescence, et dans settings.py je devais faire ça :

# BASE_DIR = Path(__file__).resolve().parent.parent  # old
BASE_DIR = Path(__file__).resolve().parent.parent.parent  # new: 4_1/

Exo 5.1 "Exiger Auth" - BOICHÉ Gauvain

Je déclare n'avoir pas usé d'IA au profit de la documentation officielle.

Par contre je déclare l'avoir utilisé hier soir pour mettre tout d'a-plomb pour faire marcher l'application, en générant les patrons HTML notamment.

Exo 5.2 "Cloisonner" - BOICHÉ Gauvain

J'allais l'utiliser, mais j'ai décidé de relire le cours pour perform_create. Des fois je pense que tout est trop compliqué.

Exo 5.3 "Propiétés sensibles"

Je n'ai pas utilisé d'IA... en fait j'avais déjà fait ça :

from rest_framework     import serializers
from .models            import Equipment

class EquipmentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Equipment
        fields = ["id", "hostname", "ip", "is_active"]
        # fields = ["id", "hostname", "description", "date_ajout", "is_active"]

Pris d'un cours précédent. Sécurité béton accidentelle.

Si, j'en ai usé : Raison 1

Je voulais un script qui génère des utilisateurs, les jetons et tout directement après un gros HARD-RESET du projet (restructuration des dossiers)

Raison 2

En voulant créer, depuis le compte "Bob" un équipement avec "owner": "Alice", j'obtiens malgré tout une réponse 201. Maintenant, la sécurité "marche" en soit parce que le "owner" passe à "Bob". Autant il ne peut PAS créer de réponse en tant qu'Alice, autant... et bien ce n'est pas ce que j'ai demandé.

J'ai passé l'info à une IA et elle a voulu tout ré-écrire pour... permettre à Bob de le faire pour Alice. J'ai reprécisé 4 fois le périmètre, pas moyen de lui faire comprendre.

J'ai fini par lui insulter ses grands morts et j'ai laissé comme ça.

Eco 5.4 "Limiter conso"

Pas d'IA.

Exo 5.5 "Durcir config"

Raison 1

Usage pour bien définir les CORS et les hôtes.

Avant

ALLOWED_HOSTS = ["127.0.0.1", "http://127.0.0.1", "localhost"] CORS_ALLOWED_ORIGINS = ["127.0.0.1", "http://127.0.0.1", "localhost"]

Après

ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
CORS_ALLOWED_ORIGINS = ["http://127.0.0.1:8000", "http://localhost:8000"]

Raison 2

Pour la journalisation, parce que c'était chaud comme bloc.

Exo 5.6

Pas eu le temps.