小编Jef*_*lho的帖子

TypeError at /en/ 类型为“__proxy__”的对象不是 JSON 可序列化的

我正在尝试在我的 Django 项目中实现面包屑。为了实现这一点,我创建了一个由我拥有的每个视图继承的 mixin。这是代码:

class BreadcrumbMixin(object):
    index = False
    url_name = None
    verbose_name = None

    def breadcrumbUpdate(self, breadcrumb, new_value):
        for i in range(len(breadcrumb)):
            if breadcrumb[i]['url_name'] == new_value['url_name']:
                breadcrumb = breadcrumb[:i + 1]
        breadcrumb.append(new_value)

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        new_value = {
            'url_name' : self.url_name,
            'verbose_name' : self.verbose_name,
            'url' : reverse_lazy(self.url_name, **kwargs)
        }

        if self.index:
            self.request.session['breadcrumb'] = [new_value,]
        else:
            self.breadcrumbUpdate(self.request.session['breadcrumb'], new_value)
        return context
Run Code Online (Sandbox Code Playgroud)

属性index,url_nameverbose_name在继承它的每个视图中设置。例如:

class Index(BreadcrumbMixin, TemplateView):
    template_name = 'crud/index.html'
    index = True
    url_name …
Run Code Online (Sandbox Code Playgroud)

django json python-3.x

11
推荐指数
1
解决办法
4332
查看次数

标签 统计

django ×1

json ×1

python-3.x ×1