我有一個模型'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