我正在通過Django教程開展工作。 在民意調查應用程序管理頁面中,我想根據民意調查問題的第一個字符創建一個list_filter
。Django模型:基於另一個字段值爲字段自動賦值
爲了解決這個問題,我想在問題模型中添加一個字段,將問題文本的第一個字符作爲值。但是,我希望該字段的值自動設置。我試過幾種方法,但我不明白幾件事情:
從教程中的代碼:
class Question(models.Model):
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
我嘗試添加另一場類似這樣的:
first_char = question_text[:1]
我收到錯誤:
'CharField' object is not subscriptable
我想我不能在模型類中添加一個正常值。爲什麼我會得到這個錯誤,即使question_text
是一個字符串?
我試圖重寫
__init__
,但即使沒有錯誤,數據庫未填充:def __init__(self,*args,**kwargs): super(Question, self).__init__(*args, **kwargs) self.first_char = self.question_text[:1] first_char = models.CharField(max_length=1)
怎麼能這個目標實現?
的Django:1.7
Ubuntu的:14.04
感謝ZygD的編輯! –