indexError at /xadmin/users/userprofile/1/update/

来源:5-2 xadmin的安装

Harrymissu

2018-01-25

您好 老师。  我的xadmin可以正常登陆,但在点击查看用户的时候就会报这个错误。 

5a6969c300012e0b05000322.jpg

5a6969c3000164df05000225.jpg


写回答

2回答

越过小山丘

2019-06-09

当我们点增加用户信息,会报错

可以看到报的是xadmin/widgets中第80行

def render(self, name, value, attrs=None):
       input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).split('\n') if ht != '']
       # return input_html        return mark_safe('<div class="datetime clearfix"><div class="input-group date bootstrap-datepicker"><span class="input-group-addon"><i class="fa fa-calendar"></i></span>%s'
                        '<span class="input-group-btn"><button class="btn btn-default" type="button">%s</button></span></div>'
                        '<div class="input-group time bootstrap-clockpicker"><span class="input-group-addon"><i class="fa fa-clock-o">'
                        '</i></span>%s<span class="input-group-btn"><button class="btn btn-default" type="button">%s</button></span></div></div>' % (input_html[0], _(u'Today'), input_html[1], _(u'Now')))

上面贴出来的最后一行代码就是widgets.py的第80行代码。

可以看出这句代码是希望用“\n”把input_html里的两个标签拆开,但两个标签之间没有换行,所以没能拆分,导致报错。

input_html[1]就是报错的代码,因为input_html里只有一个元素。

解决办法:

既然“\n”不能拆分标签,那么就换一种拆分方式,使用“/><”拆分。

原代码:

input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).split('\n') if ht != '']

修改后代码:

input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).split('/><') if ht != '']input_html[0] = input_html[0] + "/>"input_html[1] = "<" + input_html[1]

再运行就正常了


0
0

Harrymissu

提问者

2018-01-25

我是用 

pip install git+git://github.com/sshwsfc/xadmin.git@django2

安装的xadmin  因为我的django是2.0.1 python是3.6.4    

我这样安装以后 是不是就不用去github把那个xadmin源码下载下来了?


0
5
Harrymissu
回复
八角的微风
好的 谢谢啦
2018-01-31
共5条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程