使用自定义类的TypeError django上下文

时间:2014-02-10 16:32:56

标签: python django

我是python和django的新手,我正在尝试将一个类传递给模板中的RequestContext。所以我有这个代码:

context = RequestContext(request, {
    'test' : myClass,
})

myClass就是这样的一个例子:

class ajax_user_session():
    user_model = None
    user_settings = None
    time_login = datetime.datetime.now()

user_modeluser_settings都是从django的models.Model派生的类(在创建和使用上下文类之前分配)。我收到以下错误:

TypeError at /settings
<playground.ajax_processing.ajax_user_session instance at 0x263fab8> is not JSON serializable

请问有人知道如何解决这个问题吗?我可以分配“普通”变量,如字符串,整数,但我不想在字典中添加几个东西,我只想使用一个大类。

谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

from django.forms.models import model_to_dict
context = RequestContext(request, {
    'test' : model_to_dict(myClass),
})

有时model_to_dict datetime出现问题,因此您可能需要使用model_to_dict(myClass, exclude=time_login)排除该字段,然后手动设置。