en attendant une réponse, j'ai commencé quelques tutos pour me rafraichir les idées. Quand j'aurais fini, je refais la VM et je tente une nouvelle installation. Je reprendrai à la suite de cette réponse.
Je suis le cours Développez votre site web , je suis bloqué à la partie gestion d'un projet .
J'ai bien cette notification à la console :
$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 13 unapplied migration(s).Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 28, 2017 - 07:10:42 Django version 1.11.3, using settings 'crepes_bretonnes.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Mais mon navigateur ne se lance pas ,donc n'affiche rien.
Je suis sur un ubuntu 14.04 et python 3.4
Pourriez vous m'aider svp?!
merci
- Edité par SlylaarNambs 28 juillet 2017 à 9:55:39
Les échecs et les erreurs sont un pont vers la réussite et non pas un obstacle
Bonjour à vous tous, j'espère que vous allez bien ?
Voila je suis coincé au début du cours de django au paragraphe routage d'url. J'ai vu que cela avait changé depuis la 1.10 ( j'ai essayer cette solution ) mais je ne trouve pas,... S'auriez vous m'aider ?
Voila le verbose du serveur :
C:\Users\gamebox\Google Drive\Cours\django\crepes_bretonnes>python manage.py runserver
Performing system checks...
System check identified some issues:
WARNINGS:
?: (urls.W002) Your URL pattern '^/blog' has a regex beginning with a '/'. Remove this slash as it is unnecessary. If this pattern is targeted in an include(), ensure the include() pattern has a trailing '/'.
System check identified 1 issue (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 28, 2017 - 20:34:59
Django version 1.11.3, using settings 'crepes_bretonnes.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Not Found: /blog/accueil
Merci d'avance
Autant pour moi je ne sais pas pourquoi cela fonctionne maintenant...
J'ai eu le même souci en passant en version 2.0 de django
""" django 3.0 qui a du être adaptée"""
from django.contrib import admin
from django.urls import path, include, re_path
urlpatterns = [
# Examples:
# url(r'^$', 'crepes.views.home', name='home'),
#path('', include('blog.urls')),
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
""" django 2.0 qui a du être adaptée"""
from django.contrib import admin
from django.urls import path, include, re_path
urlpatterns = [
# Examples:
# url(r'^$', 'crepes.views.home', name='home'),
#path('', include('blog.urls')),
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
scwall a écrit:
Bonjour à vous tous, j'espère que vous allez bien ?
Voila je suis coincé au début du cours de django au paragraphe routage d'url. J'ai vu que cela avait changé depuis la 1.10 ( j'ai essayer cette solution ) mais je ne trouve pas,... S'auriez vous m'aider ?
Voila le verbose du serveur :
C:\Users\gamebox\Google Drive\Cours\django\crepes_bretonnes>python manage.py runserver
Performing system checks...
System check identified some issues:
WARNINGS:
?: (urls.W002) Your URL pattern '^/blog' has a regex beginning with a '/'. Remove this slash as it is unnecessary. If this pattern is targeted in an include(), ensure the include() pattern has a trailing '/'.
System check identified 1 issue (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 28, 2017 - 20:34:59
Django version 1.11.3, using settings 'crepes_bretonnes.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Not Found: /blog/accueil
Merci d'avance
Autant pour moi je ne sais pas pourquoi cela fonctionne maintenant...
Je suis a la partie 2 : Activité : Développer une activité de blog complète
J'ai téléchargé le fichier et dézippé.
Avant de coder j'aimerais voir que tout marche mais en faisant le makemigrations je recois ca comme erreur :
python3 manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 347, in execute
django.setup()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/apps/registry.py", line 112, in populate
app_config.import_models()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/jason/Downloads/activite1/crepes/blog/models.py", line 3, in <module>
class Article(models.Model):
File "/Users/jason/Downloads/activite1/crepes/blog/models.py", line 12, in Article
categorie = models.ForeignKey('Categorie')
TypeError: __init__() missing 1 required positional argument: 'on_delete'
J'ai beaucoup galèré parce que je travaille avec Django 2.0 J' ai réussi en créant une nouvelle app en django 2.0
python3 manage.py startapp blog2
Puis en copiant les texte des fichiers dans ce nouveau projet un à un et en faisant quelque modifications.
Je suis a la partie 2 : Activité : Développer une activité de blog complète
J'ai téléchargé le fichier et dézippé.
Avant de coder j'aimerais voir que tout marche mais en faisant le makemigrations je recois ca comme erreur :
python3 manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 347, in execute
django.setup()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/apps/registry.py", line 112, in populate
app_config.import_models()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/jason/Downloads/activite1/crepes/blog/models.py", line 3, in <module>
class Article(models.Model):
File "/Users/jason/Downloads/activite1/crepes/blog/models.py", line 12, in Article
categorie = models.ForeignKey('Categorie')
TypeError: __init__() missing 1 required positional argument: 'on_delete'
J'ai beaucoup galèré parce que je travaille avec Django 2.0 J' ai réussi en créant une nouvelle app en django 2.0
python3 manage.py startapp blog2
Puis en copiant les texte des fichiers dans ce nouveau projet un à un et en faisant quelque modifications.
Dans l'activité Développer une activité de blog complète j'ai un petit souci.
En fait je construis mon formulaire à partie d'un ModelForm comme celui-ci :
from django import forms
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('sujet', 'email', 'pseudo', 'message')
qui reprend les informations de mon modèle :
class Comment(models.Model):
""" Modèle pour les commentaires. A vous de l'écrire ! """
sujet = models.CharField(max_length=100,)
pseudo = models.CharField(max_length=42,)
email = models.EmailField(null=False)
message = models.TextField(null=True)
date_commentaire = models.DateTimeField(default=timezone.now, verbose_name="Date du commentaire")
commentaire_is_visible = models.BooleanField(verbose_name="commentaire publié ?",
default=False)
En fait, j'ai du mal à comprendre comment inclure le formulaire au sein de la même page que le détail de l'article. J'ai l'impression qu'il faut forcément recréer un template ainsi qu'une url pour le commentaire...
S'il fallait l'appeler avec un lien je n'aurais pas de souci mais pour l'inclure dans la même page que le détail de l'article, je ne vois pas comment faire...
Voici ma vue :
def commentaire(request):
form = CommentForm()
return render(request, 'blog/lire_article.html', {'form': form})
Dans l'activité Développer une activité de blog complète j'ai un petit souci.
En fait je construis mon formulaire à partie d'un ModelForm comme celui-ci :
from django import forms
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('sujet', 'email', 'pseudo', 'message')
qui reprend les informations de mon modèle :
class Comment(models.Model):
""" Modèle pour les commentaires. A vous de l'écrire ! """
sujet = models.CharField(max_length=100,)
pseudo = models.CharField(max_length=42,)
email = models.EmailField(null=False)
message = models.TextField(null=True)
date_commentaire = models.DateTimeField(default=timezone.now, verbose_name="Date du commentaire")
commentaire_is_visible = models.BooleanField(verbose_name="commentaire publié ?",
default=False)
En fait, j'ai du mal à comprendre comment inclure le formulaire au sein de la même page que le détail de l'article. J'ai l'impression qu'il faut forcément recréer un template ainsi qu'une url pour le commentaire...
S'il fallait l'appeler avec un lien je n'aurais pas de souci mais pour l'inclure dans la même page que le détail de l'article, je ne vois pas comment faire...
Voici ma vue :
def commentaire(request):
form = CommentForm()
return render(request, 'blog/lire_article.html', {'form': form})
Forcémment, ça ne fonctionne pas. Je n'affiche rien appart le bouton submit...
Quelqu'un peut m'aider ? Par avance merci
Pourquoi est ce que tu rajoutes pas dans le template que tu utilises pout afficher les details de l'article une boucle for pour afficher les commentaires de l'articles que tu passes alors en argument de la fonction ?
Après si url et path ne sont pas les mêmes fonctions de 2 versions différentes, je ne sais pas. (+ dans la dernière version (2.0.1), balek des regex dans ces cas là)
- Edité par AbcSxyZ 28 janvier 2018 à 13:09:58
Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
VRaiment tres cool, wao, super, je fuais le framework django a cause des expression réguliere qu'il faut utiliser pour créer les route. Maintenant que le cours est mis a jour ver la version 2.0, je suis tres content et près a passer a python et django. Je fesais avant ruby et rails, et mon probleme etait que la documentation est completement en anglais.
Après si url et path ne sont pas les mêmes fonctions de 2 versions différentes, je ne sais pas. (+ dans la dernière version (2.0.1), balek des regex dans ces cas là)
- Edité par AbcSxyZ il y a environ 1 heure
Merci pour ta réponse,
Cependant je ne comprends pas bien ta réponse, ma question était surement mal formulée,
Je n'ai pas d'erreur quand je lance le serveur, le seul problème c'est que je ne parviens pas à accéder aux url de l'app mini_url, je pense que c'est à cause de "ne pas oublier de nommer ses URL" -> je n'arrive pas à comprendre ce que je dois faire...
Ba déjà, la fonction path et url semble être identique (différence de version ? C'est ce que pour l'instant je suppose). Nommer ton url tu met un name="nom_url" dans ta fonction url (ou path) et tu vas pouvoir ainsi l'utiliser ce name pour l'utiliser ailleurs.
Typiquement le meilleur exemple que je puisse te donner.
<a href="{% url 'nom_url' %}"></a>
À partir de ça tu peux modifier tes urls dans ton fichier urls.py, sa permet de pointer cette url (comment pointé vers cette url sans ce nommage ?)
Je ne réponds pas directement à ta question, mais j'ai regardé le tp le fichier urls.py de la correction, et ça à air plutôt lié. Je te laisse avancer là dessus.
Nommer ses urls, lui mettre un nom? Je dis dis ça je dis rien.
- Edité par AbcSxyZ 29 janvier 2018 à 9:59:41
Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
Dans l'activité Développer une activité de blog complète j'ai un petit souci.
En fait je construis mon formulaire à partie d'un ModelForm comme celui-ci :
from django import forms
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('sujet', 'email', 'pseudo', 'message')
qui reprend les informations de mon modèle :
class Comment(models.Model):
""" Modèle pour les commentaires. A vous de l'écrire ! """
sujet = models.CharField(max_length=100,)
pseudo = models.CharField(max_length=42,)
email = models.EmailField(null=False)
message = models.TextField(null=True)
date_commentaire = models.DateTimeField(default=timezone.now, verbose_name="Date du commentaire")
commentaire_is_visible = models.BooleanField(verbose_name="commentaire publié ?",
default=False)
En fait, j'ai du mal à comprendre comment inclure le formulaire au sein de la même page que le détail de l'article. J'ai l'impression qu'il faut forcément recréer un template ainsi qu'une url pour le commentaire...
S'il fallait l'appeler avec un lien je n'aurais pas de souci mais pour l'inclure dans la même page que le détail de l'article, je ne vois pas comment faire...
Voici ma vue :
def commentaire(request):
form = CommentForm()
return render(request, 'blog/lire_article.html', {'form': form})
Forcémment, ça ne fonctionne pas. Je n'affiche rien appart le bouton submit...
Quelqu'un peut m'aider ? Par avance merci
Pourquoi est ce que tu rajoutes pas dans le template que tu utilises pout afficher les details de l'article une boucle for pour afficher les commentaires de l'articles que tu passes alors en argument de la fonction ?
Merci pour ta réponse jpettiau. En fait mon problème c'est surtout déjà d'afficher les champs du formulaire à remplir car pour l'instant je n'arrive pas à les afficher sur la même page que l'article en question. je n'ai que le bouton submit. Que ce soit le cours d'OC ou d'autres tutos, j'ai l'impression qu'ils partent tous du principe de récréer un template spécialement pour le formulaire et d'ajouter une urlpattern . Or, ce n'est pas ce qui est demandé dans le TP puisque la captur d'écran montre clairement l'affichage du formulaire sous le détail de l'article...
J'avais testé de recréer un template séparé contenant le formulaire et de l'appeller depuis mon template qui affiche le détail de l'article avec un lien, pas de souci. Je l'affiche bien mais du coup dans une autre page.
Bonjour, dans le cadre de mon option informatique en terminale, j'ai décidé de créer un site de rencontre avec le framework Django. Je n'arrive pas du tout a créer un algorithme de compatibilité, je dois créer un algorithme de compatibilité entre les critères recherchés par la personne et les différents profils pour ressortir un pourcentage de compatibilité.
Bonjour, dans le cadre de mon option informatique en terminale, j'ai décidé de créer un site de rencontre avec le framework Django. Je n'arrive pas du tout a créer un algorithme de compatibilité, je dois créer un algorithme de compatibilité entre les critères recherchés par la personne et les différents profils pour ressortir un pourcentage de compatibilité.
Merci d'avance.
Félicitation, c'est courageux de t'attaquer à Django pour ton option informatique. Ta demande est très vaste, tout d'abord, es-tu à l'aise avec le langage Python et la POO ? Avant t’attaquer à l'algorithme en lui-même , pose toi le problème en français dans ta tête des informations dont ton algorithme a besoin pour fonctionner correctement et comment faire une comparaison cohérente de ces données.
Si je peux te donner un conseil, avant de m'attaquer directement à Django qui va donner sa dimension "web" à ton projet, j'essaierai déjà de créer un programme simple en python en utilisant des données statiques.
Tu pourrais par exemple très bien imaginer créer un classe Homme et une classe Femme dont les objets seraient les personnes et leurs attributs des critères (La taille, la couleur des yeux, l'âge; le poids etc...). Je te donne cet exemple tout à fait au hasard car il y a différentes manières de voir les choses.
Ton algorithme pourrait faire en sorte de comparer les données recherchées par la personne avec les différents attributs que tu a renseigné et en fonction du taux de similarité ou au contraire de différence entre ces données, te fournir un pourcentage de compatibilité.
Une fois que tout celà sera bien défini dans ton programme, tu peux créer ton application web avec Django en stockant toutes ces infos dans une base de données et en les traitant de manière dynamique dans tes templates html.
J'ai bien peur que ta question ne soit pas clair, on a aucune info sur tes vues, donc on ne peut pas savoir vraiment où tu bloques avec tes modèles, tes imports sont ils bon dans tes vues,
import myapp.models
Tes migrations sont-elles faites ? (pour autant je ne pense pas que cela soit indispensable pour utiliser ses modèles dans les vues)
Si tu bloques toujours au même endroit, hésite pas à clarifier.
Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
Envoie ton script views.py, et si tu peux mettre le code de façon correcte (éventuellement corriger celui de dessus), perso je peux pas trop t'aider avec les infos que j'ai, tu l'as déjà dit que ton problème te semblait dans les vues dans ton premier message, tu clarifies pas grand chose je crois.
Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
J'ai essayer de réfléchier un peu à ton problème, je maitrise pas tout à fait les import entre différents fichiers, je met habituellement mes imports sous
from myapp import views
dans urls.py, mais ça été l'occasion pour moi d'approfondir et
from . import views
fonctionne bel et bien. Donc comme tu semble avoir un problème d'import et qu'il semble bon, hum.. dans la plus grande improbabilité, ton fichier views.py n'a pas été renommé ? Très improbable, mais c'est un peu le seul truc qui me vient en tête pour provoquer un problème d'import. Ton code me paraît correct (pas de la parole d'expert) alors bon... Si tu as des détails à ajouter, éventuellement, l'arborescence de ton fichier ou je sais pas trop... Je balance ton code de façon lisible des fois que quelqu'un d'autre ait de l'inspi. En espérant que cela puisse être utile, te donnes éventuellement une piste, mais pas totalement sur que je puisse t'aider pour le coup.
# models.py
from django.db import models
from django.utils import timezone
class Categorie(models.Model):
nom = models.CharField(max_length=30)
def __str__(self):
return self.nom
class Article(models.Model):
titre = models.CharField(max_length=100)
auteur = models.CharField(max_length=42)
contenu = models.TextField(null=True)
date = models.DateTimeField(default=timezone.now,
verbose_name="Date de parution")
categorie = models.ForeignKey('Categorie', on_delete=models.CASCADE)
class Meta:
ordering = ['date']
def __str__(self):
return self.titre
##views.py
from django.http import Http404
from django.shortcuts import render,get_object_or_404
from blog.models import Article
def accueil(request):
""" Afficher tous les articles de notre blog """
articles = Article.objects.all() # Nous sélectionnons tous nos articles
return render(request, 'blog/accueil.html', {'derniers_articles': articles})
def lire(request, id):
try:
article = Article.objects.get(id=id)
except Article.DoesNotExist:
raise Http404
return render(request, 'blog/lire.html', {'article': article})
#urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.accueil, name='accueil'),
path('article/<int:id>', views.lire, name='lire')
]
- Edité par AbcSxyZ 16 mars 2018 à 1:11:08
Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
dans urls.py, mais ça été l'occasion pour moi d'approfondir et