ошибка django: объект 'unicode' не вызывается - PullRequest
8 голосов
/ 05 октября 2010

Я пытаюсь выполнить учебник по django с веб-сайта django, и у меня возникла небольшая проблема: я начал добавлять свои __unicode__ методы в мои классы моделей, но когда я пытаюсь вернуть объекты этого Модель я получаю следующую ошибку:

in __unicode__
    return self.question()
TypeError: 'unicode' object is not callable

Я довольно новичок в Python и очень плохо знаком с Django, и я не могу действительно увидеть, что я здесь упустил, если кто-то может указать на это, я был бы очень благодарен. Немного кода:

My models.py:

# The code is straightforward. Each model is represented by a class that subclasses django.db.models.Model. Each model has a number of 
# class variables, each of which represents a database field in the model.

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


    class Choice(models.Model):
        poll = models.ForeignKey(Poll) 
        choice = models.CharField(max_length=200) 
        votes = models.IntegerField()

        def __unicode__(self):
            return self.choice()

и в интерактивной оболочке:

from pysite.polls.models import Poll, Choice
Poll.objects.all()

1 Ответ

29 голосов
/ 05 октября 2010

self.choice является строковым значением, но код пытается вызвать его как функцию. Просто удалите () после него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...