Skip to main content

Reusable Django app for managing lists of books with ratings.

Project description

django-book-manager

Documentation: https://django-book-manager.readthedocs.org

This reusable Django application provides models suitable for managing a list of books with ratings, somewhat like a private Goodreads.

Its real purpose is to provide sample models, with sample data, for use in testing other Django libraries. Often, when authoring new Django libraries, we need a simple example application to use so that we can test out our code.

Getting It

You can get django-book-manager by using pip:

pip install django-book-manager

If you want to install it from source, grab the git repository from GitHub and run setup.py:

git clone git://github.com/caltechads/django-book-manager.git
cd django-book-manager
python setup.py install

Installing It

To enable book_manager in your project you need to add it to INSTALLED_APPS in your project's settings.py file:

INSTALLED_APPS = (
    ...
    'book_manager',
    ...
)

Then, apply the migrations to add the schema to your database:

./manage.py migrate

Using It

django-book-manager provides these models:

  • book_manager.Book: a book with title, slug, publishing dates, number of pages, authors, etc.

  • book_manager.Author: an author. book_manager.Book has a many to many relationship with this

  • book_manager.BookAuthor: this is a many to many through table between book_manager.Book and book_manager.Author that exists to record billing order of authors on a book (first author, second author, etc.)

  • book_manager.Publisher: a publisher. book_manager.Book has a foreign key relationship with this

  • book_manager.Binding: a binding (hardcover, softcover, ebook, ...). book_manager.Book has a foreign key relationship with this

  • book_manager.Reading: a reading record of a book by a reader. This is a many to many through table between book_manager.Book and the AUTH_USER_MODEL that records a rating, review, notes, date read, etc. for a particular user.

  • book_manager.Shelf: a collection of book_manager.Reading objects, used by readers to classify books

django-book-manager also supplies a command that can be used to load a Goodreads user library export into Django, splitting it into all the above models as appropriate.

To generate an export from Goodreads, go to your Goodreads account and:

  • Click "My Books"
  • At the bottom of that page, click "Import and Export"
  • At the top of that page, click "Export Library"

To load the CSV thus generated into Django, first create a user for yourself in Django, then:

./manage.py import_csv <csvfile> <username>

A sample Goodreads export is available in this repository as sandbox/data/books.csv.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-book-manager-0.3.2.tar.gz (15.6 kB view hashes)

Uploaded Source

Built Distribution

django_book_manager-0.3.2-py2.py3-none-any.whl (17.6 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page