我正在跟踪模型上的用户状态。对于模型“课程”,我的状态为“完成”,“学习”,“已查看”。在模型列表的视图中,我想添加用户状态。这样做的最佳方式是什么?
一个想法:将请求添加到模型方法就可以了。这可能吗?
编辑:我的意思是模板代码:{{lesson.get_status}},带有get_status(self,request)。可能吗?它还不起作用。
答案 0 :(得分:2)
如果您的状态是更改的值,则必须将其分为两个单独的部分。
更新状态。必须在视图函数中调用它。然而,真正的工作属于模型。视图函数调用模型方法并执行保存。
显示状态。这只是状态的一些字符串表示。
模型
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>
答案 1 :(得分:1)
是的,您可以使用请求参数向模型添加方法:
class MyModel(models.Model):
fields....
def update_status(self, request):
make something with the request...