Installation¶
Actual package installation is quite simple and can be done via pip. Dependencies should be handled by pip fine [1]:
pip install django-afip
You’ll then need to configure your project to use this app by adding it to your
settings.py
:
INSTALLED_APPS = (
...
'django_afip',
...
)
Make sure to run all migrations after you’ve added the app:
python manage.py migrate afip
[1] | Receipt PDF generation uses weasyprint, which has some additional dependencies. Consult their documentation for clear and up-to-date details. |
Configuration¶
It is also possible (yet optional) to define storages for files used by the app. If undefined, the default file storage is used.
The value of these settings should be a string with the path to the instance of
a storage to use (eg: 'myapp.storages.my_private_storage'
). Both S3 and
the default storages have been tested, but any django-compatible storage should
work just fine. See the django documentation for more details on storages.
AFIP_KEY_STORAGE # Keys for authenticating with AFIP (TaxPayer.key)
AFIP_CERT_STORAGE # Certs for auth'ing with AFIP (TaxPayer.certificate)
AFIP_PDF_STORAGE # PDFs generated for receipts (ReceiptPDF.pdf_file)
AFIP_LOGO_STORAGE # Logos used in invoices (TaxPayer.logo)
Versioning¶
It is recommended that you pin versions, at least to major releases, since major releases are not guaranteed to be totally compatibility (clear upgrade notes ARE provided though):
django-afip>=4.0,< 5.0
We strictly follow Semantic Versioning. We only support version of Django that are currently supported upstream.
Django-afip is compatible with all currently supported django versions.
Upgrading¶
Backwards compatibility may break at major release, however, we always provide migrations to upgrade existing installations (I actually always use those on multiple production instances without any data loss).
Warning
If you’re on a pre-v4.0.0 release, you should upgrade to v4.0.0 and then further, since migrations will be squashed and purged in latter releases.
If you’re working on new/non-production projects, it’s safe to ignore this warning (though you’ll have to drop your current DB).