sshwsfc / xadmin

Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.
http://www.xadmin.io
BSD 3-Clause "New" or "Revised" License
4.76k stars 1.41k forks source link

django2.1 使用xadmin报错 #623

Open baifuwa opened 6 years ago

baifuwa commented 6 years ago

安装了python3.7,及django2.1,在使用xadmin时,报各种错。

hongweipeng commented 6 years ago

可以试试用 django2 这个分支。

istarmeow commented 6 years ago

使用django2分支的源码,我也用的3.7+Django2.1.1+xadmin2,未发现问题

baifuwa commented 6 years ago

@xyliurui 谢谢,用django2分支确实好。

coder-gao commented 6 years ago

使用django2分支的源码,我也用的3.7+Django2.1.1+xadmin2,未发现问题

删除用户不报错吗

lmsorry commented 6 years ago

请问怎么用django2分支的源码. 我用的pip install git+git://github.com/sshwsfc/xadmin.git@django2还是出问题.

istarmeow commented 6 years ago

请问怎么用django2分支的源码. 我用的pip install git+git://github.com/sshwsfc/xadmin.git@django2还是出问题.

直接下载源码安装吧,还可以做一些自定义修改

istarmeow commented 6 years ago

使用django2分支的源码,我也用的3.7+Django2.1.1+xadmin2,未发现问题

删除用户不报错吗

啊。。。试了的确会报错,还没改好,之前一直没用过详情页的删除功能,如果是在外面通过复选框选中的方式删除,是可以正常删除的

lmsorry commented 6 years ago

使用django2.0可能正常使用, django2.1首页的添加组件会出错

istarmeow commented 6 years ago

使用django2.0可能正常使用, django2.1首页的添加组件会出错

添加用户小组件bug

render() got an unexpected keyword argument 'renderer

\xadmin\views\dashboard.py

第36行

def render(self, name, value, attrs=None, renderer=None):  # 修改bug:添加renderer
hongweipeng commented 6 years ago

@xyliurui render函数在django2.1上有变化,要修改的话还需要对版本进行判断:

if django_version > (2, 1):
    render(...)
xuelingbing commented 5 years ago

使用django2分支的源码,我也用的3.7+Django2.1.1+xadmin2,未发现问题

删除用户不报错吗

啊。。。试了的确会报错,还没改好,之前一直没用过详情页的删除功能,如果是在外面通过复选框选中的方式删除,是可以正常删除的

请问这个问题解决了吗?这个问题一直困扰着。着急啊

Rmond commented 5 years ago

这个问题我解决了。主要是django2.1.1 的get_deleted_objects方法和2.0不一样 https://github.com/django/django/blob/stable/2.1.x/django/contrib/admin/utils.py

要改两个地方,一个是xdmin.views.delete.py里面用到get_deleted_objects,改成下面3个参数的 (self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects( [self.obj], self.opts, self.admin_site) 第二个地方就是django的utils.py文件的get_delete_objects方法注释掉下面的if,2.0里面是没有这个判断的 `#if not admin_site._registry[model].has_delete_permission(request, obj):

perms_needed.add(opts.verbose_name)`