############ Installation ############ ****** Pillow ****** Ditto uses `Pillow `_ which has some prerequisites of its own. You may need to install libjpeg and zlib. (On a Mac, zlib was installed for me by XCode, and I used `Homebrew `_ to install libjpeg.) ******************** Install django-ditto ******************** Ditto can be installed using `pip `_: .. code-block:: shell $ pip install django-ditto ********************* Add to INSTALLED_APPS ********************* To use Ditto in your own project (untested as yet), add the core ``ditto.core`` application to your project's ``INSTALLED_APPS`` in your ``settings.py``, and add the applications for the services you need. This example includes Flickr, Last.fm, Pinboard and Twitter:: INSTALLED_APPS = ( # other apps listed here. # ... 'imagekit', # Required only to use downloaded images and videos 'sortedm2m', # Required only for ditto.flickr 'taggit', # Required only for ditto.flickr and ditto.pinboard 'ditto.core', 'ditto.flickr', 'ditto.lastfm', 'ditto.pinboard', 'ditto.twitter', ) If you only wanted to use the Flickr part, including displaying downloaded photos, you would do this:: INSTALLED_APPS = ( # other apps listed here. # ... 'imagekit', # Required only to use downloaded images and videos 'sortedm2m', # Required only for ditto.flickr 'taggit', # Required only for ditto.flickr and ditto.pinboard 'ditto.core', 'ditto.flickr', ) Or, to use only the Twitter part, and not worry about using local versions of images:: INSTALLED_APPS = ( # other apps listed here. # ... 'ditto.core', 'ditto.twitter', ) ************** Add to urls.py ************** To use Ditto's supplied views you can include each app's URLs in your project's own ``urls.py``. Note that each app requires the correct namespace (``flickr``, ``lastfm``, ``pinboard`` or ``twitter``), eg:: from django.urls import include, path from django.contrib import admin urlpatterns = [ path("admin/", include(admin.site.urls)), path("flickr/", include("ditto.flickr.urls")), path("lastfm/", include("ditto.lastfm.urls")), path("pinboard/", include("ditto.pinboard.urls")), path("twitter/", include("ditto.twitter.urls")), # To include the overall, aggregated views: path("ditto/', include("ditto.core.urls")), ] Change the URL include paths (eg, ``r'^ditto/pinboard/'`` as appropriate) to suit your project. See the ``urls.py`` in the ``devproject/`` project for a full example. Each app's URL conf is included under an appropriate ``app_name``: * ``flickr`` * ``lastfm`` * ``pinboard`` * ``twitter`` * ``ditto`` (The Ditto Core URLs) ******** Settings ******** There are some optional settings that can be placed in your project's ``settings.py``. Core settings ============= The ``ditto.core`` app has some optional settings for customing the formats used to display dates and times in the default templates (and the ``ditto_core.display_time()`` template tag). The formats are those used for `strftime `_. Here they are, with their default values:: # e.g. "07:34" DITTO_CORE_TIME_FORMAT = '%H:%M' # e.g. "8 Apr 2018" DITTO_CORE_DATE_FORMAT = '%-d %b %Y' # Used when both a time and a date are displayed. # The [time] and [date] tokens are replaced with the formats from the # two settings above. # e.g. "07:34 on 8 Apr 2018" DITTO_CORE_DATETIME_FORMAT = '[time] on [date]' # Used when only a year is displayed. # e.g. "2018" DITTO_CORE_DATE_YEAR_FORMAT = '%Y' # Used when only a month and year are displayed. # e.g. "Apr 2018" DITTO_CORE_DATE_YEAR_MONTH_FORMAT = '%b %Y' Service-specific settings ========================= In addition, some of the other apps have their own optional settings. They're described in detail in each service's documentation. This is the complete list of service-specific settings with their default values:: DITTO_FLICKR_DIR_BASE = 'flickr' DITTO_FLICKR_DIR_PHOTOS_FORMAT = '%Y/%m/%d' DITTO_FLICKR_USE_LOCAL_MEDIA = False DITTO_TWITTER_DIR_BASE = 'twitter' DITTO_TWITTER_USE_LOCAL_MEDIA = False Other optional settings ======================= To have large numbers formatted nicely in the included templates, ensure these are in your ``settings.py``:: USE_L10N = True USE_THOUSAND_SEPARATOR = True ******************* Set up each service ******************* Each service (such as Flickr or Twitter) you want to use will require some set-up in order to link your account(s) on the service with Django Ditto. See the documentation for each service for how to do this.