Laurent Hazart 1 ay önce
ebeveyn
işleme
653d86b8af
4 değiştirilmiş dosya ile 71 ekleme ve 4 silme
  1. 67 0
      PYTHON_3.14_ISSUES.md
  2. 2 2
      blog/admin.py
  3. 1 1
      duhaz_blog/settings.py
  4. 1 1
      requirements.txt

+ 67 - 0
PYTHON_3.14_ISSUES.md

@@ -0,0 +1,67 @@
+# ⚠️ Problème de Compatibilité Python 3.14
+
+## 🐛 Problème Identifié
+
+**Erreur** : `'super' object has no attribute 'dicts' and no __dict__ for setting new attributes`
+
+**Cause** : `django-import-export` n'est pas encore compatible avec Python 3.14
+
+## 🔧 Solution Appliquée
+
+### Temporairement désactivé :
+- ❌ `django-import-export` dans requirements.txt
+- ❌ `'import_export'` dans INSTALLED_APPS
+- ❌ `ImportExportModelAdmin` dans blog/admin.py
+
+### Utilise maintenant :
+- ✅ `admin.ModelAdmin` standard
+- ✅ TinyMCE via `formfield_overrides`
+
+## 📊 Impact
+
+### Fonctionnalités perdues :
+- ❌ Import/Export Excel/CSV depuis l'admin Django
+
+### Fonctionnalités conservées :
+- ✅ Création/édition d'articles
+- ✅ Éditeur TinyMCE
+- ✅ Toutes les autres fonctions admin
+
+## 🔄 Solutions Futures
+
+### Option 1 : Attendre la mise à jour
+Suivre : https://github.com/django-import-export/django-import-export/issues
+
+### Option 2 : Downgrade Python
+```bash
+# Utiliser Python 3.11 ou 3.12 au lieu de 3.14
+python3.12 -m venv venv
+```
+
+### Option 3 : Alternative manuelle
+Utiliser des scripts Python pour importer/exporter :
+```python
+import pandas as pd
+from blog.models import Blog
+
+# Export
+blogs = Blog.objects.all().values()
+df = pd.DataFrame(blogs)
+df.to_csv('export.csv')
+
+# Import
+df = pd.read_csv('import.csv')
+for _, row in df.iterrows():
+    Blog.objects.create(**row)
+```
+
+## ✅ État Actuel
+
+Le blog fonctionne correctement sans `django-import-export`.
+Vous pouvez toujours gérer vos articles via l'interface admin Django.
+
+---
+
+**Date** : Octobre 2025
+**Python** : 3.14
+**Django** : 5.1 LTS

+ 2 - 2
blog/admin.py

@@ -1,4 +1,4 @@
-from import_export.admin import ImportExportModelAdmin
+# from import_export.admin import ImportExportModelAdmin  # Désactivé temporairement (incompatible Python 3.14)
 
 from django.contrib import admin
 from django.db import models
@@ -12,7 +12,7 @@ def bt_b_not_publier(modeladmin, request, queryset):
 	queryset.update(b_publier=False)
 bt_b_not_publier.short_description = "Passer en Priver"
 
-class Blog_Admin(ImportExportModelAdmin):
+class Blog_Admin(admin.ModelAdmin):  # Changé : admin.ModelAdmin au lieu de ImportExportModelAdmin
 	# Retirer form = Blog_Admin_Form pour éviter les conflits
 	list_display = ('b_titre', 'b_description', 'b_publier','b_publdate','b_reading')
 	list_filter = ('b_publier','b_cat','b_publdate')

+ 1 - 1
duhaz_blog/settings.py

@@ -42,7 +42,7 @@ INSTALLED_APPS = [
 	'django.contrib.messages',
 	'django.contrib.staticfiles',
 	'tinymce',  # Remplace trumbowyg
-	'import_export',
+	# 'import_export',  # Désactivé : incompatible Python 3.14
 	'crispy_forms',
 	'crispy_bootstrap4',  # IMPORTANT : Ajouter pour Bootstrap 4
 	'core',

+ 1 - 1
requirements.txt

@@ -18,7 +18,7 @@ crispy-bootstrap4>=2.0
 django-tinymce>=4.0  # Compatible Django 5.1
 
 # Import/Export
-django-import-export>=3.3
+# django-import-export>=3.3  # Désactivé : incompatible avec Python 3.14 (bug 'super' object)
 
 # Development tools (optionnel)
 # django-debug-toolbar>=4.2