Thursday, January 27, 2011

object has no attribute

Hi. Im trying to create a web-site with a book from pact.com (Django
website development) as a basis. It has gone pretty well so far, but i
have encountered a problem when changing a form in models.py from
ForeingKey to OneToManyKey.
I think i know where the problem is, but i cant find a resolution.

view.py:
---------------------------------------------------------------------------------------
from django.http import Http404, HttpResponseRedirect
from django.template import RequestContext
from django.contrib.auth import logout
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response

def startside(request):
return render_to_response(
'startside.html',
RequestContext(request)
)

@login_required
def brukerside(request, username):
try:
bruker = User.objects.get(username=username)
except User.DoesNotExist:
raise Http404(u'Bruker eksisterer ikke.')

snarveier = bruker.brukersnarvei_set.all()

variabler = RequestContext(request, {
'brukernavn': username,
'snarveier': snarveier,
})
return render_to_response('brukerside.html', variabler)

def utlogg(request):
logout(request)
return HttpResponseRedirect('/')

---------------------------------------------------------------------------------

models.py:
---------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User

class Program(models.Model):
""" Inneholder link til forskjellige programmer """
tittel = models.CharField(max_length=64, unique=True)
link = models.URLField(unique=True)

def __unicode__(self):
return self.tittel

class Meta:
verbose_name_plural="Programmer"

class Brukersnarvei(models.Model):
""" Kobler sammen brukere og programmer """
brukere = models.OneToOneField(User)
programmer = models.ManyToManyField(Program)

def __unicode__(self):
return u'%s' % (self.brukere)

class Meta:
verbose_name_plural="Brukersnarveier"

-------------------------------------------------------------------------------

Error message:
'User' object has no attribute 'brukersnarvei_set'

-------------------------------------------------------------------------------

I have chosen to put norwegian names where i can to better see the
difference between python/django-set standards and what i have more
controll over.

I understand the problem lies in the view; "snarveier =
bruker.brukersnarvei_set.all()".
I dont completely understand how the _set-function works, and i think
this is not usable on a OneToManyField?

Any pointers on where to find information on this, or a direct
resolution (or alternatives) are highly appreciated!

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment