re-bonjour à tous, je tente détendre le modèle user avec le modèle profil, mais pour cette ligne :
user = models.OneToOneField(User)#La liaison OneToOne vers le modèle User cela me met l'erreur :
TypeError: __init__() missing 1 required positional argument: 'on_delete' que je n'arrive pas a comprendre. Est ce que quelqu'un pourrait m'éclairer s'il vous plait ? Merci de votre réponse
Est-ce que je me trompe mais le cours n'a pas été complètement mis à jour pour django 2.0
L'activité de la partie 2" ne fonctionne pas. Et dans les vues génériques on parle de la fonction url qui n'est pas dans le cours précédemment (apparemment supprimer dans django 2 un équivalent à re_path ?)
Pour continuer de suivre le cours correctement sans me perdre dans des "quêtes parallèles" pensez vous que je dois réinstaller un django 1.7 ?
Je pense que tu as raison sur le problème de versionning de Django concernant ce TP (j'ai le même souci).
Pour ton information : J'ai modifié les fichiers url.py (crepes/urls et blog/url) et je n'ai plus d'erreur au lancement du serveur ou sur l'instruction makemigrations...
En conclusion je reste sur django 2
... mais cela n'a pas suffit, j'ai donc créé une nouvelle appli "blog1" dans le projet crepes, et j'ai recopié tous les fichiers du zip dans la nouvelle appli, et ça marche...
from django.contrib import admin from django.urls import path, include,re_path
Je fais le cours donc...et je suis bloqué au niveau de la création de formulaire à partir de modèle.
1- L'exemple en shell ne passe pas au niveau de la validation...en fait, il manque apparemment la date...j'ai pu voir ça avec form.is_valid() puis form.errors
2- Vous indiquez un rendu HTML après avoir présente le code...mais la route n'est pas défini et dans quel fichier est-ce que le code est à mettre ? Et comment est-on censé obtenir le rendu présenté ? quel chemin ?
Toutefois je n'y arrive pas malgré ces changements.
J'ai bien compris également que le blog fourni dans l'activité correspond à une ancienne version de Django et certaines fonctions sont obsolètes. J'ai apporté les modifications nécessaires, mais je bloque à un endroit avec toujours le même message d'erreur :
Bonjour serait-il possible de creer un forum django ? ou devons nous poster dans le forum python ?
Car a priori, ici on pose des questions sur le cours (que je suis en train de suivre), mais ma question concerne un projet personnel.
Au cas ou,
En python ceci fonctionne :
import couchdb
couch = couchdb.Server('http://admin:motdepass@localhost:5984/')
db = couch['_users']
for id in db:
if id[0] != '_': //juste car la premiere entree ne m'interesse pas et qu'elle commence par '_'
print (db[id]['name'])
et m'affiche la liste des utilisateurs de mon projet perso.
Bonsoir. Svp comment réalisé en python un package qui implémente les différentes méthodes de tri( tri par insertion, tri par sélection, tri par bulle, tri par fusion, tri rapide etc...)
je viens vers vous car je suis bloqué au niveau du cours de Django de Maxime LORANT et Mathieu XHONNEUX. Ces erreurs suivantes apparaissent quand j'essaye d'importer la classe "Article", je me trouve dans le chapitre sur "La gestion des fichiers" et tout marchait auparavant même les imports de "Article", "Categorie" et autres; je suis a dispo pour plus d'infos:
>>> from models import Article
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/golo/Desktop/coursPython/Django/Projets/crepes_bretonnes/blog/models.py", line 7, in <module>
class Article(models.Model):
File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 100, in __new__
creation d'un projet django impossible : manque pitz !
- versions -
C:\WINDOWS\system32>python Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.get_version() '2.1.7' >>> quit()
- erreur django- admin
C:\Users\mclegear\django_essai>django-admin startproject histo_django Traceback (most recent call last): File "C:\Users\mclegear\Python37-32\Scripts\django-admin-script.py", line 6, in <module> from pkg_resources import load_entry_point File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 3126, in <module> @_call_aside File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 3110, in _call_aside f(*args, **kwargs) File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 3139, in _initialize_master_working_set working_set = WorkingSet._build_master() File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 581, in _build_master ws.require(__requires__) File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 898, in require needed = self.resolve(parse_requirements(requirements)) File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 784, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'pytz' distribution was not found and is required by Django
J'aimerai avoir votre avis sur le cms Wagtail par rapport à Django-cms. j'ai l'impression qu'il y a plus de tutoriels avec Django-cms mais le backend de Wagtrail me semble plus propre... J'ai vraiment du mal à me décider sur lequel je vais utiliser pour travailler.
Bonjour je suis débutant sur le framework Django et je rencontre des difficultés dans l'affichage d'un hello word!
En fait dans les tutos que j'ai suivi, dans leur urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
Or chez moi ça s'affiche plutôt avec les path au niveau de url
Je ne suis pas un pro en django mais j'ai fais le tuto en gros, le cours est actualisé en django 2.X pendant que les activités sont en 1.7. Par conséquent, quand tu fais les activités, ne reprend pas le code source donné mais fais le toi même en créant un nouveau projet et une nouvelle app.
Une petite question concernant les QuerySet. Dans le cours il y a cet exemple, avec les models Categorie et Article
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
Du coup je me demandais, quand je fais une recherche sur une catégorie, dans mon résultat je peux accéder aux objets Articles qui sont liés à ma catégorie ?
findCategorie = Categorie.objects.filter(id > 1)
findCategorie[0].article ??? Est-ce que je retrouve l'ensemble des articles liées à ma catégorie 0?
Bonjour, mon site comporte une bibliotheque de programmes réportoriés dans un tableau, avec une notice qui s'ouvre lors du clic sur l'un des programmes. La page de la notice est censé s'adapter en fonction du programme sur lequel on clique. Mais, une erreur apparaît, et je ne parvient ni à la comprendre ni la résoudre.
Pouvez-vous m'aider ?
L'erreur :
Internal Server Error: /bibliotheque/notice/1
Traceback (most recent call last):
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\Users\Robin\Documents\programmation\RepertoireGit\SimpleTrainer\bibliotheque\views.py", line 19, in notice
return render (request, 'bibliotheque/notice.html', {'last_five' : last_five, 'program' : program})
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\shortcuts.py", line 36, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\loader.py", line 62, in render_to_string
return template.render(context, request)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\backends\django.py", line 61, in render
return self.template.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 171, in render
return self._render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\test\utils.py", line 96, in instrumented_test_render
return self.nodelist.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\test\utils.py", line 96, in instrumented_test_render
return self.nodelist.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\defaulttags.py", line 442, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\urls\base.py", line 90, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\urls\resolvers.py", line 622, in _reverse_with_prefix
raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'notice' with no arguments not found. 1 pattern(s) tried: ['bibliotheque\\/notice/(?P<id>[0-9]+)$']
[14/Jun/2019 22:56:40] "GET /bibliotheque/notice/1 HTTP/1.1" 500 161949
urls.py :
from django.conf.urls import url
from django.urls import path, re_path
from . import views
urlpatterns = [
path('', views.bibliotheque, name='bibliotheque'),
re_path('notice/(?P<id>[0-9]+)$', views.notice, name='notice'),
]
views.py :
from django.shortcuts import render
from . import models, forms
import os
last_five = models.Article.objects.all()[:5]
def bibliotheque (request):
programs = models.Program.objects.all()
stats = models.Stat.objects.all()
return render (request, 'bibliotheque/bibliotheque.html', {'programs' : programs, 'stats' : stats, 'last_five' : last_five})
def notice (request, id):
program = models.Program.objects.get(id = id)
form = forms.StatForm(request.POST or None)
if form.is_valid():
form.save()
return render (request, 'bibliotheque/notice.html', {'last_five' : last_five, 'program' : program})
Je ne comprends pas le "form1.as_p" à la place du "form.as_p" ?
ni le blog_lire dans " form action="{% url 'blog_lire' article.slug %}" method="post" "
Bonjour Patou_74 pour ton {% url 'blog_lire' article.slug %} tu dois le déclaré ton url dans urls.py avec comme name 'blog_lire' et slug comme paramètre
j'imagine que t'a déja ton views, le forml c'est la variable que t'assigne ta form dans ton views.
def lire_article(request, slug):
"""
Affiche un article complet, sélectionné en fonction du slug
fourni en paramètre
"""
article = get_object_or_404(Article, slug=slug)
commentaires = Comment.objects.filter(is_visible = True).filter(article = article.id)[:1]
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
pseudo = form.cleaned_data['pseudo']
email = form.cleaned_data['email']
commentaire = form.cleaned_data['commentaire']
article = article.id
else:
form = CommentForm()
return render(request, 'blog/lire_article.html', {'article': article, 'commentaires' : commentaires, 'form' : form})
et mon template :
<h4>Poster votre propre commentaire</h4>
{% if envoi %}Votre message a bien été envoyé !{% endif %}
<form action="{% url 'blog_lire' article.slug %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<br><br> <br><br> <br><br> <br><br> <br><br>
<input type="submit" value="Envoyer" />
<br><br>
</form>
mais je ne sais pas si c'est bien de mettre tout dans le même render, mais je ne sais pas comment faire autrement car tout doit être dans le même template
Je ne suis pas sur ce cours mais sur "Decouvrir le Framework Django", je pense que les cours django pâtissent tous de n'avoir pas été mis à jour avec la V2. Jusque là je m'en sortais, j'ai trouvé toutes les correspondances avec la doc de django.
Elle survient aprés l'ajout de d'un template business casual.
L'erreur m'a d'abord fait penser à une incompatibilité de debug_toolbar mais suite à désinstallation la même erreur se reproduit dans les fichier sources de django,
Bref il manque quelque chose mais je ne trouve pas quoi.
je suis sur un projet django en ce moment et j'aimerais y inclure un forum. Mon forum est formé autour de deux entités, la question et la reponse. une reponse est lié à une question et une question peut avoir plusieurs réponses.
Voilà mes modèles
class Question(models.Model): contenu= models.TextField(blank=False) date= models.DateTimeField(auto_now_add=True) user= models.ForeignKey(User,on_delete=models.CASCADE)
def __str__(self): return self.contenu
class Reponse(models.Model): contenu=models.TextField(blank=False) date=models.DateTimeField('date de reponse', auto_now_add=True) question= models.ForeignKey(Question, on_delete=models.CASCADE) user=models.ForeignKey(User,on_delete=models.CASCADE)
def __str__(self): return self.contenu
Lorsqu'un utilisateur répond à une question, je n'arrive pas à enregistrer cette réponse car je ne parviens pas à récupérer la contenu de la question vu que la reponse et la question sont liés
voilà ma fonction
def repondre(request):
if request.method=='POST': form=ReponseForm(request.POST)
Dominique SAUVIGNON
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
A vaincre sans péril, on triomphe sans gloire!
A vaincre sans péril, on triomphe sans gloire!
#©je code quand je m'ennuie