У меня есть модель 'Objective', где обычным способом обращения к объектам является метод Unicode.
models.py:
class Objective(models.Model):
level = models.IntegerField()
strand = models.ForeignKey(Strand)
order = models.IntegerField()
description = models.TextField()
def __unicode__(self):
return u'%s%s%s' % (self.level, self.strand.code, self.order)
class Meta:
unique_together = ("strand", "level", "order")
ordering = ['level', 'strand', 'order']
Пример объекта в этой модели будет называться, например, 6ssm4, для четвертой записи в цепочке ssm на уровне 6. Я хочу выполнить поиск (скажем, из разбора URL), ссылаясь на эту строку юникода.
urls.py:
(r'^(?P<objective>[^/]+)/$', 'display_objective'),
Я попробовал все следующие варианты в виде строк в views.py (не все сразу!):
def display_objective(request, objective):
theobjective = Objective.objects.get(unicode() = objective)
theobjective = Objective.objects.get(self.unicode = objective)
theobjective = Objective.objects.get(__unicode__ = objective)
theobjective = Objective.objects.get(objective__iexact = objective)
theobjective = Objective.objects.get(objective)
theobjective = Objective.objects.get(unicode() = objective)
Но если перейти к http://localhost:8000/6ssm4/, я получу страницу с ошибками типа «Ключевое слово не может быть выражением» или «Не удается разрешить ключевое слово« self »в поле». Варианты выбора: оценка, описание, идентификатор , уровень, порядок, прядь ".
Это законный способ поиска объектов или я должен анализировать ключевое слово? Если это допустимо, какой правильный синтаксис?