I am working through the Django tutorials, and now I am at creating a poll.
The code below works fine until I want to create choices, where for some reason I always get this error message:
line 22, in __unicode__
return self.question
AttributeError: 'Choice' object has no attribute 'question'
What am I doing wrong?
Here’s my code:
import datetime
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self):
return self.question
def was_published_today(self):
return self.pub_date.date() == datetime.date.today()
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
def __unicode__(self):
return self.question # this is line 22
The
__unicode__method on theChoicemodel should look something like:questionattribute does not exist on theChoicemodel, you need to reach for it over thepollforeign key field.Don’t forget to check out Django’s great documentation that shows many examples on how to handle many to one relationships.
Edit
It would probably make more sense to
return self.choiceinChoicemodel__unicode__method so it outputs the actual choice not the Poll question.