python 3.5下xadmin的使用及修复源码bug
Xadmin是一个比较常用的Django后台管理系统,可以在开发Web应用程序时提供一些帮助。在Python 3.5中使用xadmin之前,需要安装一些依赖包。具体可以参考官方文档。在本文中,我们将介绍如何安装和使用xadmin,并且将讨论修复一个源码错误的方法。
首先,我们需要在Python 3.5环境中安装xadmin。可以使用pip来安装xadmin:
```
$ pip install xadmin
```
接下来,我们需要在Django配置文件的INSTALLED_APPS列表中添加xadmin。
```
INSTALLED_APPS = (
...
'xadmin',
'crispy_forms',
...
)
```
在我们的应用程序urls.py文件中,我们需要将xadmin的URL添加到urlpatterns中。
```
from django.urls import include, path
import xadmin
urlpatterns = [
path('xadmin/', xadmin.site.urls),
# ... other urls
]
```
现在,我们已经成功地将xadmin集成到我们的应用程序中。在本例中,请通过输入http:// localhost:8000 / xadmin来访问xadmin。
现在,我们讨论如何修复xadmin的源码错误。当使用xadmin时,出现了这个错误:AttributeError:' NoneType 'object is not callable。
这个错误的解决方案是:在xadmin的源码中寻找调用NoneType对象的函数,以便找到错误发生的位置。在我的情况下,错误发生在xadmin/views/base.py中的_config方法中,因为_options对象是None类型。我们添加以下代码来修复它:
```
def _config(self):
self._setup()
self._get_media()
self.force_menu_open()
#ADD ----------------
if not self._options:
return
#ADD END -----------
# set attrs
for key, value in IDENTITY_MAP.items():
setattr(self, key, value(self))
for key, value in ITEM_MAP.items():
setattr(self, key, value(self))
for key, value in MENU_MAP.items():
setattr(self, key, value(self))
```
最后,我们进行一些测试,并确保错误已经修复。现在,我们可以自由使用xadmin的所有功能,尽情开发我们的Web应用程序。