caltechads / django-book-manager

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

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

License:Other


Languages

Language:Python 83.9%Language:HTML 5.4%Language:Shell 4.8%Language:Dockerfile 3.5%Language:Makefile 2.3%Language:SCSS 0.0%