Liaison de table avec foreignKey
Bonjour à tous,
J'ai un petit problème avec les liaisons de tables sous django. J'ai suivi à la lettre le tuto sur djangobook, mais je me retrouve toujours avec la meme erreur.
Le code de model :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| from django.db import models
class Article (models.Model):
title=models.CharField(max_length=100)
content=models.TextField()
keywords=models.CharField(max_length=300)
category_article=models.ForeignKey('Category_article',null=True)
insert_dt=models.DateField()
picture = models.CharField(max_length=100,null=True)
def __unicode__(self):
return self.title
class Comment (models.Model):
article = models.ForeignKey(Article)
content =models.TextField()
name=models.CharField(max_length =100)
rate= models.IntegerField()
insert_dt=models.DateField()
url =models.URLField()
email=models.EmailField()
def __unicode__(self):
return self.name
class Category_article(models.Model):
name=models.CharField(max_length=100)
insert_dt=models.DateField()
details=models.TextField()
def __unicode__(self):
return self.name |
Dans la vue, J'utilise simplement :
Code:
1 2 3 4 5 6
|
#blog page (display the first 20 articles)
def blog(request):
articles= Article.objects.all().order_by("-insert_dt")[:20]
articles.comment_set.all()
return render_to_response('portfolio/blog/index.html',{'articles':articles}) |
L'erreur s'affichant étant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| AttributeError at /blog/
'QuerySet' object has no attribute 'comment_set'
Request Method: GET
Request URL: http://127.0.0.1:8000/blog/
Django Version: 1.2.3
Exception Type: AttributeError
Exception Value:
'QuerySet' object has no attribute 'comment_set'
Exception Location: /home/johann/mysite/../mysite/portfolio/views.py in blog, line 20
Python Executable: /usr/bin/python
Python Version: 2.6.5
Python Path: ['/home/johann/mysite', '/usr/local/lib/python2.6/dist-packages/setuptools-0.6c11-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages']
Server time: Sat, 9 Oct 2010 18:50:36 -0500
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py in get_response
response = callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/home/johann/mysite/../mysite/portfolio/views.py in blog
articles.comment_set.all() ...
▶ Local vars |
Si J'enlève la ligne dans la vue - articles.comment_set.all() - L affichage fonctionne (pour les données de la table articles seulement bien sur).
Merci de votre aide et bon dimanche à tous !