Skip to content

facets-xx/django-simple-import

 
 

Repository files navigation

django-simple-import

An import tool easy enough your users could use it. django-simple-import aims to keep track of logs and user preferences in the database.

Project is now stable and feature complete. Of course it's always a good idea to test before deploying.

Build Status

Alt text Alt text Alt text

Features

  • Supports csv, xls, xlsx, and ods (Warning: ods support is poor) import file
  • Save user matches of column headers to fields
  • Guess matches
  • Create, update, or both
  • Allow programmers to define special import methods for custom handling
  • Support for django-custom-field
  • Set related objects by any unique field
  • Simulate imports before commiting to database
  • Undo (create only) imports
  • Security checks if user has correct permissions (partially implemented)

Install

  1. pip install django-simple-import
  2. Add 'simple_import' to INSTALLED APPS
  3. Add simple_import to urls.py like urlpatterns += url(r'^simple_import/', include('simple_import.urls')),
  4. syncdb (you may use south)

Optional Settings

Define allowed methods to be "imported". Example:

class Foo(models.Model):
    ...
    def set_bar(self, value):
        self.bar = value
    simple_import_methods = ('set_bar',)

settings.py

SIMPLE_IMPORT_LAZY_CHOICES: Default True. If enabled simple_import will look up choices when importing. Example:

choices  = ['M', 'Monday']

If the spreadsheet value is "Monday" it will set the database value to "M".

If you need any help we do consulting and custom development. Just email us at david at burkesoftware.com.

Usage

Go to /simple_import/start_import/ or use the admin interface.

The screenshots have a django-grappelli like theme. The base templates have no style and are very basic. See example of customization here.

There is also a log of import records. Check out /admin/simple_import/

Odd Things

Added a special set password property on auth.User to set password. This sets the password instead of just saving a hash.

User has some required fields that...aren't really required. Hardcoded to let them pass.

Security

I'm working on the assumtion staff users are trusted. Only users with change permission to a field will see it as an option. I have not spent much time looking for ways users could manipulate urls to run unauthorized imports. Feel free to contribute changes. All import views do require admin "is staff" permission.

About

An import tool easy enough your users could use it

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published