Using Django auth User model as a Foreignkey and reverse relations
23,505
Solution 1
Have you included the application containing the Post model in your settings.py installed apps?
e.g.
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'testapp'
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
and ran manage.py syncdb?
python manage.py syncdb
i.e does the database table for the Post model definately exist?
I did a quick test and found no problems:
from django.db import models
from django.contrib.auth.models import User
class PostModel(models.Model):
user = models.ForeignKey(User)
(test) C:\Users\Steven\django_projects\test\testproj>python manage.py shell
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.auth.models import User
>>> test = User.objects.get(username='test')
>>> test.postmodel_set.all()
[]
Solution 2
Post.objects.filter(user=request.user).order_by('-timestamp')
Related videos on Youtube
Author by
abc def foo bar
Updated on October 31, 2020Comments
-
abc def foo bar over 3 years
I am using the
User
model fromdjango.contrib.auth.models
. I have another model calledPost
which referencesUser
through a foreign key.The problem is when I try to access a logged in user's posts through
request.user.post_set.order_by('-timestamp')
I get an error,
User
object has no attributepost_set
. So how do I use the default auth model with foreign keys? -
Tomasz Zieliński about 13 yearsGood workaround, but those backreferences should be there, isn't it?