我有一个模型'Objective',其中通常的方式来引用对象是由unicode方法。只使用对象的Unicode的Django过滤器模型
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,在第6级ssm链中的第四个条目。我想通过引用这个unicode字符串来进行查找(比如说从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/我在错误页面输入错误信息,如“关键字不能是表达式”或“无法解析关键字'自我”,选择是:评估,描述,ID,级别,顺序,链。
这是查找对象的合法方式,还是应该解析关键字?如果它是合法的,那么正确的语法是什么?
谢谢。我做了你在新领域所说的话,然后花了几秒钟的时间“为了o的目标:o.save()'而我完成了。可爱的修复。 – nimasmi
这是一个非常聪明的移民!恭喜。你在南方还是手工做过? –
“在南方做”?我不明白。我应该在python shell中完成它,但实际上我暂时修改了我的视图函数,因为它在那里和方便。 – nimasmi