我正在跟踪模型上的用户状态。对于模型“课”,我有“完成”、“学习”、“查看”的状态。在模型列表视图中,我要添加用户状态。最好的方法是什么?
一个想法是:将请求添加到models方法中就可以了。有可能吗?
编辑:我的意思是在模板代码中:{{lesson.get status},带有getstatus(self,request)。有可能吗?它还不起作用。
最佳答案
如果您的状态是一个更改的值,则必须将其分为两部分。
正在更新状态。这必须在视图函数中调用。然而,真正的工作属于模型。view函数调用model方法并进行保存。
显示状态。这只是状态的一些字符串表示。
模型
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>