我正在跟蹤模型上的用戶狀態。對於模型「課程」,我的狀態爲「完成」,「學習」,「已觀看」。在我想添加用戶狀態的模型列表的視圖中。做這個的最好方式是什麼?向django模型方法添加請求?
一個想法:將請求添加到模型方法可以做到這一點。那可能嗎?
編輯:我的意思是模板代碼:{{lesson.get_status}},並帶有get_status(self,request)。可能嗎?它不工作(還)。
我正在跟蹤模型上的用戶狀態。對於模型「課程」,我的狀態爲「完成」,「學習」,「已觀看」。在我想添加用戶狀態的模型列表的視圖中。做這個的最好方式是什麼?向django模型方法添加請求?
一個想法:將請求添加到模型方法可以做到這一點。那可能嗎?
編輯:我的意思是模板代碼:{{lesson.get_status}},並帶有get_status(self,request)。可能嗎?它不工作(還)。
是的,你可以將方法添加到您的模型與請求paramater:
class MyModel(models.Model):
fields....
def update_status(self, request):
make something with the request...
如果您的狀態是改變,你必須分成兩個獨立的部分這個值。
更新狀態。這必須在視圖函數中調用。然而,真正的工作屬於模型。視圖函數調用模型方法並進行保存。
顯示狀態。這只是狀態的一些字符串表示。
型號
class MyStatefulModel(models.Model):
theState = models.CharField(max_length=64)
def changeState(self):
if theState is None:
theState= "viewed"
elif theState is "viewed":
theState= "learning"
etc.
查看功能
def show(request, object_id):
object= MyStatefulModel.objects.get(id=object_id)
object.changeState()
object.save()
render_to_response(...)
模板
<p>Your status is {{object.theState}}.</p>
是它可以調用從視圖這種方法嗎?這是目標,它不起作用(還)! – 2009-04-17 10:45:29