- Data Uploader
- setup.py: Building and Distributing Packages with Setuptools
- MANIFEST.in: Creating a Source Distribution
- Simplified BSD License: 2-clause license ("Simplified BSD License" or "FreeBSD License") (BSD Template)
from djuploader.queryset import UploadQuerySet
from django.utils.translation import ugettext_lazy as _
class ContactQuerySet(UploadQuerySet):
def header_row(self, *args, **kwargs):
''' CSV Header '''
return [_('Family Name'), _('First Name'), ]
def data_row(self, instance):
''' CSV Data '''
return [instance.family_name, instance.first_name, ]
class Contact(AbstractProfile):
# ....
objects = querysets.ContactQuerySet.as_manager()
from django.contrib.admin.views.decorators import staff_member_required
from djuploader.utils import FileResponse
from . import models
@staff_member_required
def export_contact(request):
return FileResponse(filename="contact.csv").export(
models.Contact.objects.all())
from django.dispatch import dispatcher
class Community(models.Model):
uploaded_signal = dispatcher.Signal(providing_args=["instance", ])
from django.dispatch import receiver
from . import models
@receiver(models.Community.uploaded_signal)
def on_community_uploaded(instance, *args, **kwargs):
for line, row, errors in instance.open(encoding='cp932'):
if not errors:
print "LINE=", line, " do something with dict", row
- templates/admin/communities/community/change_list.html
{% extends "admin/change_list.html" %}
{% load uploadertags %}
{% block object-tools-items %}
{% get_upload_model opts.model as um %} {# get UploadFile instance #}
{{ block.super }}
<li>
<a href="{% url 'admin:djuploader_uploadfile_add' %}?upload={{ um.id }}">
{% trans 'Import' %}{% trans 'Community' %}</a>
</li>
{% endblock %}