Git Product home page Git Product logo

xadmin's Introduction

Xadmin Build Status

Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Live Demo

http://demo.xadmin.io

  • User: admin
  • Password: admin

Features

  • Drop-in replacement of Django admin
  • Twitter Bootstrap based UI with theme support
  • Extensible with plugin support
  • Better filter, date range, number range, etc.
  • Built-in data export with xls, csv, xml and json format
  • Dashboard page with widget support
  • In-site bookmarking
  • Full CRUD methods

Screenshots

Get Started

Install

Xadmin is best installed via PyPI. To install the latest version, run:

pip install xadmin

or Install from github source:

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

Install from github source for Django 2.0:

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

Install Requires

Documentation

Changelogs

0.6.0

  • Compact with Django1.9.
  • Add Clock Picker widget for timepicker.
  • Fixed some userface errors.

0.5.0

  • Update fontawesome to 4.0.3
  • Update javascript files to compact fa icons new version
  • Update tests for the new instance method of the AdminSite class
  • Added demo graphs
  • Added quickfilter plugin.
  • Adding apps_icons with same logic of apps_label_title.
  • Add xlsxwriter for big data export.
  • Upgrade reversion models admin list page.
  • Fixed reverse many 2 many lookup giving FieldDoesNotExist error.
  • Fixed user permission check in inline model.

Detail

Online Group

  • QQ群 : 282936295

Run Demo Locally

cd demo_app
./manage.py migrate
./manage.py runserver

Open http://127.0.0.1:8000 in your browser, the admin user password is admin

Help

Help Translate : http://trans.xadmin.io

xadmin's People

Contributors

alexsilva avatar amzyang avatar areski avatar atrautsch avatar cc-db-p8 avatar cgcgbcbc avatar clint74 avatar flisky avatar flowerowl avatar fxiao avatar idalin avatar imdagger avatar joveyu avatar kofwang avatar marshalys avatar mszpadzik avatar ntsai avatar simanas avatar sshwsfc avatar taras1k avatar thaxter avatar the5fire avatar tocer avatar wbcyclist avatar wgbbiao avatar xiaobao996 avatar y2kconnect avatar ygmpkk avatar zcyuefan avatar zts0813 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xadmin's Issues

Filter __repr__ makes django-debug-toolbar's template pannal into maximum recursion depth

d:\Python\lib\site-packages\xadmin\filters.py in __repr__
        return mark_safe(tpl.render(Context(self.get_context()))) ...

d:\Python\lib\site-packages\django\template\base.py in render
            return self._render(context) ...

d:\Python\lib\site-packages\django\test\utils.py in instrumented_test_render
    template_rendered.send(sender=self, template=self, context=context) ...

d:\Python\lib\site-packages\django\dispatch\dispatcher.py in send
            response = receiver(signal=self, sender=sender, **named) ...

d:\Python\lib\site-packages\debug_toolbar\panels\template.py in _store_template_info
                            pformat(value)  # this MAY trigger a db query ...

d:\Python\lib\pprint.py in pformat
    return PrettyPrinter(indent=indent, width=width, depth=depth).pformat(object)
 ...

d:\Python\lib\pprint.py in pformat
        self._format(object, sio, 0, 0, {}, 0)
 ...

d:\Python\lib\pprint.py in _format
        rep = self._repr(object, context, level - 1)
 ...

d:\Python\lib\pprint.py in _repr
                                                self._depth, level)
 ...

d:\Python\lib\pprint.py in format
        return _safe_repr(object, context, maxlevels, level)
 ...

d:\Python\lib\pprint.py in _safe_repr
    rep = repr(object)
 ...

d:\Python\lib\site-packages\xadmin\filters.py in __repr__
        return mark_safe(tpl.render(Context(self.get_context()))) 

So I suggest changing the current implementation of __repr__ into __str__, and avoid calling render in __repr__, since __repr__ is for machine, not human.

RuntimeError at /auth/user/

Hi there,

Everything seems to be working as expected, but for some reasons when I try to see the users,is given me the following error:

RuntimeError at /auth/user/
maximum recursion depth exceeded while calling a Python object

Error during template rendering

In template $HOME/env/lib/python2.7/site-packages/xadmin/templates/xadmin/blocks/model_list.nav_menu.filters.html, error at line 11
maximum recursion depth exceeded while calling a Python object

I'm using Django 1.4.5. btw, I'm a django newbie.

Regards,
Dennis.

导入错误

xadmin的插件里面有一行导入文件是错误的。
文件:django-xadmin/xadmin/plugins/refield.py
导入代码:from django.utils.html import escape,format_html

其中format_html 在django里面是不存在的。
我把format_html注释掉了,正常运转。
希望能解决这个事情。
:))

Change password bug

AssertionError: sensitive_post_parameters didn't receive an HttpRequest. If you are     decorating a classmethod, be sure to use @method_decorator.

Happens when I'm changing user's password (/admin/auth/user/1/update/password/).

django-xadmin==0.4.0

Sentry integration

In sshwsfc/django-exadmin@49f7697 sentry was added with hardcoded DSN, if you on heroku you dont need to do it, raven can take DSN from heroku env vars.
In addition sentry sends exception reporting only if Debug=False, but without debug you need to move static from heroku to, for example, S3.
Any plans about english docs for extending your ui?

Django 1.5 is required

force_text(s, encoding='utf-8', strings_only=False, errors='strict')
New in Django 1.5.

But requirements.txt is django 1.4

Update bootstrap to 3.0

Hi, ALL:

Bootstrap 3.0 will mobile first, and redesign of the whole UI, including the various components. The new panel component is added, this is xadmin most needed components, had been using well instead of panel.

Bootstrap3.0 doc online : http://rnikitin.github.io/bootstrap/docs/

Using the Bootstrap3.0 Xadmin in the BP3 branch https://github.com/sshwsfc/django-xadmin/tree/bp3, because bootstrap3.0 is not officially released, so the branch will continue to update.

You can experience the effects of the integration, and give your feedback.

Thank you

Suggestions - Food for thought

Hi,

Thank you for the xadmin, it's looking good.

I have been reviewing different admins, admin plugins and discussion regarding the future of the Django admin and would like to share some thoughts with you.

Would you please consider the following :

  • Loose coupling the admin ui from the model using HATEOAS API (REST)
  • Extend the admin.py settings from Djang rather than replacing them all together
  • Consider a different configuration method/style more in line with Django
  • Make Revision optional

Interesting summaries/discussion can be found:

I'm more than willing to help and will try to pitch in as much as I can.

Very best regards,
-Stefan Baxter

Quickform erases previous selections in m2m_transfer and m2m_dropdown

when using a quickform with multiselect, only the added item value is passed to the "refresh_url" in xadmin.plugin.quick-form.js line 201, as data['obj_id']. The value of the currently selected options should be passed in comma-separated form, e.g. myfield=1,2,99. (see quickform.py line 25).

Because only the newly added item is passed, the form returned does not contain the previous selections and they are unselected.

File Upload

I'm looking for a good way to do file uploads/downloads with xadmin and Amazon S3. The best solution looks to be this Django plugin called filer: https://github.com/stefanfoulis/django-filer

I can't seem to get them to work together. How would I go about doing this?

Any help is appreciated,
Matt

Cann't upload files use quickform.

models:

class Collect(models.Model):
user = models.ForeignKey(User)
wine = models.ForeignKey(Wine)
class User(models.Model):
nickname = models.CharField(max_length=50)
img = models.ImageField(upload_to='')

在xadmin中,如果我在Collect的CreateFormView界面中添加user,因为user包含图片字段,而xadmin的插件quickform在弹出的dialog中表单提交的方式是ajax,所以图书会上传不上去.

Not compatible with Django 1.5-derived custom User classes

Appears to use the User model from django.contrib.admin rather than the get_user_model() function recommended with Django 1.5. When trying to run this with a custom User, I see errors like this:
xadmin.bookmark: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.

How to enable password reminder?

Hi! Can't get the point how to enable built in password reset application?

There is a bunch of templates in registration folder, but how to hook them up to the system?

support for south

When added to a project that uses south, xadmin fails with an import error when doing a collectstatic:

ImportError: No module named xadminsouth

Love the demo, thanks!

how to use generic.GenericTabularInline?

class PhotosAdmin(generic.GenericTabularInline):
model = Photos

class EventAdmin(object):
inlines = [PhotosAdmin]

xadmin.site.register(Eventos, EventosAdmin)

but i have error:
metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

AttributeError found when using the demo site

I encountered the following error while using your demonstration site.

I will try to fix and submit a pull request, but wanted to document this since I wasn't sure if you'd get an automatic notification since DEBUG is turned on.

Environment:

Request Method: GET
Request URL: http://x-demo.herokuapp.com/app/kitchensink/add/?_rel_country__id__exact=12

Django Version: 1.5.1
Python Version: 2.7.4
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'xadmin',
 'crispy_forms',
 'reversion',
 'app',
 'hosts')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')

Template error:
In template /app/.heroku/python/lib/python2.7/site-packages/xadmin/templates/xadmin/views/model_form.html, error at line 56
   'str' object has no attribute 'get_field_result'
   46 : 
   47 :   {% if errors %}
   48 :       <p class="text-error">
   49 :       {% blocktrans count counter=errors|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
   50 :       </p>
   51 :       {{ form.non_field_errors }}
   52 :   {% endif %}
   53 : 
   54 :   {% view_block 'before_fieldsets' %}
   55 : 
   56 :    {% crispy form %} 
   57 : 
   58 :   {% view_block 'after_fieldsets' %}
   59 : 
   60 :   {% block submit_buttons_bottom %}{% include "xadmin/includes/submit_line.html" %}{% endblock %}
   61 : </form>
   62 : {% endblock %}
   63 : 

Traceback:
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  140.                     response = response.render()
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/response.py" in render
  105.             self.content = self.rendered_content
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/response.py" in rendered_content
  82.         content = template.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in render
  140.             return self._render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/debug.py" in render_node
  74.             return node.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  124.         return compiled_parent._render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/debug.py" in render_node
  74.             return node.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  124.         return compiled_parent._render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/debug.py" in render_node
  74.             return node.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  63.             result = block.nodelist.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/debug.py" in render_node
  74.             return node.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  63.             result = block.nodelist.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/debug.py" in render_node
  74.             return node.render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/templatetags/crispy_forms_tags.py" in render
  198.         c = self.get_render(context)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/templatetags/crispy_forms_tags.py" in get_render
  123.                 actual_form.form_html = helper.render_layout(actual_form, node_context, template_pack=self.template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/helper.py" in render_layout
  281.                                   template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/layout.py" in render
  130.                                  context, template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/utils.py" in render_field
  53.                 return field.render(form, form_style, context, template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/layout.py" in render
  337.             fields += render_field(field, form, form_style, context, template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/utils.py" in render_field
  53.                 return field.render(form, form_style, context, template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/layout.py" in render
  337.             fields += render_field(field, form, form_style, context, template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/utils.py" in render_field
  53.                 return field.render(form, form_style, context, template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/layout.py" in render
  270.                                    template_pack=template_pack)
File "/app/.heroku/python/lib/python2.7/site-packages/crispy_forms/utils.py" in render_field
  55.                 return field.render(form, form_style, context)
File "/app/.heroku/python/lib/python2.7/site-packages/xadmin/views/edit.py" in render
  51.             result = self.detail.get_field_result(field)

Exception Type: AttributeError at /app/kitchensink/add/
Exception Value: 'str' object has no attribute 'get_field_result'

表单中自定义字段

希望可以在添加表单操作时,添加自定义字段。在填写表单的过程中添加自定义字段。
另外是否可以集成一些tag功能。比如添加的某个记录,加一些tag等。

用户小组件 通过批量删除的action插件删除时的问题

一般正常删除小组件时会同时清除xadmin_usersettings表相关的值,
但通过list页的批量删除就会失效,
导致一进入首页,后台就会报错
ERROR:root:invalid literal for int() with base 10: ''
Traceback (most recent call last):
File "/data1/www/htdocs/677/freshfruits/1/site-packages/xadmin/views/dashboard.py", line 541, in get_widgets
widget = user_widgets.get(int(wid))

unsupported format character 'T' (0x54) at index 24

hi, can you help me please to find a solution to this error
"Error during template rendering

In template /home/mohamed/Documents/WebGest/xadmin/templates/xadmin/views/model_list.html, error at line 136

/home/mohamed/Documents/WebGest/xadmin/views/list.py in label

            text = mark_safe(wrap % text)

BatchChangeAction Bug

Can't use BatchChangeAction .

51:

if self.request.POST.get('post'):
self.form_obj = form_class(
data=self.request.POST, files=self.request.FILES)

        return None

I can't find any save code, pls check.

数据即时编辑 - checkbox 更新不了的问题

环境

  • 系统:MAC OS X 10.9
  • django-xadmin:0.4.0 ~ 0.4.2
  • 浏览器:Safari v7.0 (9537.71)/Firefox v25.0.1

重现操作流程

  1. BooleanField 字段使用 数据即时编辑
  2. 编辑,更新不成功1

debug

  • xadmin.plugin.editable.js:159 - $(this).attr('checked') 的值是 checkedundefined

解决

考虑到可能在 windows 下的浏览器不会出现这个问题。使用一种更通用的写法:$(this).is(':checked')

修改前:

this.$form.find('input[type=checkbox]').each(function(){
  if(!$(this).attr('checked')){
    off_check_box[$(this).attr('name')] = ''
  }
})

修改后:

this.$form.find('input[type=checkbox]').each(function(){
  if(!$(this).is(':checked')){
    off_check_box[$(this).attr('name')] = ''
  }
})

No english documentation

I know this might not technically be a bug, but to me this package is not usable because it lacks English documentation. In a certain sense that is an issue...

Error when having ManyToMany fields with intermediary models.

Hi,

When I define a ManyToMany field with an intermediary model and try to save I receive the following error:

Cannot set values on a ManyToManyField which specifies an intermediary model.

Regards,
Dennis.

Traceback:
File "envlib/python2.7/site-packages/django/core/handlers/base.py" in get_response

  1.                     response = callback(request, _callback_args, *_callback_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/sites.py" in wrapper
  2.             return self.admin_view(view, cacheable)(_args, *_kwargs)
    
    File "envlib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  3.                 response = view_func(request, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  4.     response = view_func(request, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/sites.py" in inner
  5.         return view(request, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in view
  6.         return handler(request, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/edit.py" in post
  7.     return super(UpdateAdminView, self).post(request, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
  8.         return bound_func(_args, *_kwargs)
    
    File "envlib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  9.                 response = view_func(request, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/django/utils/decorators.py" in bound_func
  10.             return func(self, _args2, *_kwargs2)
    
    File "envlib/python2.7/site-packages/django/db/transaction.py" in inner
  11.             return func(_args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in method
  12.         return filter_chain(filters, len(filters) - 1, _inner_method, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in filter_chain
  13.     return func()
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in _inner_method
  14.         return func(self, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/edit.py" in post
  15.         self.save_related()
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in method
  16.         return filter_chain(filters, len(filters) - 1, _inner_method, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in filter_chain
  17.     return filter_chain(filters, token - 1, _inner_method, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in filter_chain
  18.     return func()
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in _inner_method
  19.             result = func()
    
    File "envlib/python2.7/site-packages/xadmin/views/base.py" in _inner_method
  20.         return func(self, _args, *_kwargs)
    
    File "envlib/python2.7/site-packages/xadmin/views/edit.py" in save_related
  21.     self.form_obj.save_m2m()
    
    File "envlib/python2.7/site-packages/django/forms/models.py" in save_m2m
  22.             f.save_form_data(instance, cleaned_data[f.name])
    
    File "envlib/python2.7/site-packages/django/db/models/fields/related.py" in save_form_data
  23.     setattr(instance, self.attname, data)
    
    File "envlib/python2.7/site-packages/django/db/models/fields/related.py" in set
  24.         raise AttributeError("Cannot set values on a ManyToManyField which specifies an intermediary model.  Use %s.%s's Manager instead." % (opts.app_label, opts.object_name))
    

Exception Value: Cannot set values on a ManyToManyField which specifies an intermediary model.

Error export files

Hello,
I get an error when you export files(EXCEL, XML):

link: http://x-admin.herokuapp.com/xadmin/userwidget/?_do_=export&export_type=xls&export_xls_header=on

Request Method: GET
Request URL:    http://x-admin.herokuapp.com/xadmin/userwidget/?_do_=export&export_type=xls&export_xls_header=on
Django Version: 1.5.1
Exception Type: TypeError
Exception Value:    coercing to Unicode: need string or buffer, __proxy__ found
Exception Location: /app/demo_app/../xadmin/plugins/export.py in get_xls_export, line 44

and (JSON):

link: http://x-admin.herokuapp.com/xadmin/userwidget/?_do_=export&export_type=json&export_json_format=on

Request Method: GET
Request URL:    http://x-admin.herokuapp.com/xadmin/userwidget/?_do_=export&export_type=json&export_json_format=on
Django Version: 1.5.1
Exception Type: TypeError
Exception Value: key <django.utils.functional.__proxy__ object at 0x1e77a10> is not a string
Exception Location: /app/.heroku/python/lib/python2.7/json/encoder.py in _iterencode_dict, line 382

another error export files(EXCEL, XML, CSV, JSON):

link: http://x-admin.herokuapp.com/app/host/?_do_=export&export_type=xls&export_xls_header=on

Request Method: GET
Request URL:    http://x-admin.herokuapp.com/app/host/?_do_=export&export_type=xls&export_xls_header=on
Django Version: 1.5.1
Exception Type: AttributeError
Exception Value:    'ResultItem' object has no attribute 'export'
Exception Location: /app/demo_app/../xadmin/plugins/export.py in <lambda>, line 34

export files(EXCEL):

link: http://x-admin.herokuapp.com/xadmin/usersettings/?_do_=export&_cols=id.__str__.user&export_type=xls&export_xls_header=on

Request Method: GET
Request URL:    http://x-admin.herokuapp.com/xadmin/usersettings/?_do_=export&_cols=id.__str__.user&export_type=xls&export_xls_header=on
Django Version: 1.5.1
Exception Type: TypeError
Exception Value:    coercing to Unicode: need string or buffer, __proxy__ found
Exception Location: /app/demo_app/../xadmin/plugins/export.py in get_xls_export, line 44

demo bug

ImproperlyConfigured at /auth/user/
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

django-xadmin/demo_app/demo/settings.py

try:
    import dj_database_url
    # DATABASES['default'] = dj_database_url.config(default="sqlite:////" + os.path.join(PROJECT_ROOT, 'data.db'))  # 正确代码
    DATABASES['default'] = dj_database_url.config()  # 错误代码
except Exception:
    pass

Widgets are not loading correctly when inline extra = 0

Hi there,

Somehow when I use inlines and define extra = 0 for my inline, the widgets for instance, the calendar and the cool dropdowns with search functionality stopped working, apparently they do not load correctly, but if I change to extra = 1 everything works fine again.

Best,
Dennis.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.