bookshelf-django

Django models for Bookshelf


Keywords
bookshelf, django, django-models, knex-migrate
License
MIT
Install
npm install bookshelf-django@0.1.0

Documentation

Django models for Bookshelf

Build Status Coverage Status Code Climate dependencies Status devDependencies Status peerDependencies Status Downloads

Table of contents

Installation

NPM

npm install bookshelf-django --save

Yarn

yarn add bookshelf-django

Usage

Load models to registry

require('bookshelf-django')(bookshelf);

var AuthUser = bookshelf.model('Django.Auth.User');

or load model/collection

var AuthUser = require('bookshelf-django')(bookshelf).Auth.User;

Available models / collections

Django.Session

Django session framework model

Django.Sessions

Django session framework collection

Django.Site

Django site model

Django.Sites

Django site collection

Django.FlatPage

Django flat page model

toString() -> string

Returns string representation of a permission.

const FlatPage = bookshelf.model('Django.FlatPage')

FlatPage.forge({id: 1})
.fetch()
.then(function(flat_page) {
  console.log(flat_page.toString())
})

Django.FlatPages

Django flat pages collection

Django.Redirect

Django redirect model

toString() -> string

Returns string representation of a redirect.

const Redirect = bookshelf.model('Django.Redirect')

Redirect.forge({id: 1})
.fetch()
.then(function(redirect) {
  console.log(redirect.toString())
})

Django.Redirects

Django redirects collection

Django.ContentType

Django content type model

Django.ContentTypes

Django content type collection

Django.Auth.Permission

Permission model

toString() -> string

Returns string representation of a permission.

const AuthPermission = bookshelf.model('Django.Auth.Permission')

AuthPermission.forge({id: 1})
.fetch({withRelated: 'contentType'})
.then(function(permission) {
  console.log(permission.toString())
})

toStringAsync() -> Promise<string>

Returns Promise with string representation of a permission.

const AuthPermissions = bookshelf.collection('Django.Auth.Permissions')

AuthPermission.forge({id: 1})
.fetch({withRelated: 'contentType'})
.then(function(permission) {
  return permission.toStringAsync()
}).then(function(permission) {
  console.log(permission)
})

stringify(permissionModel) -> string

Parameters

  • permissionModel Django.Auth.Permission

    Django.Auth.Permission object

Stringify a Django.Auth.Permission object.

const AuthPermission = bookshelf.model('Django.Auth.Permission')

AuthPermission.forge({id: 1})
.fetch()
.then(AuthPermission.stringify)
.then(function(permission) {
  console.log(permission)
})

Django.Auth.Permissions

Permission collection

Django.Auth.Group

Groups of permissions model

getPermissions() -> Promise<Django.Auth.Permissions>

Collection of permissions of group permissions.

const AuthPermission = bookshelf.model('Django.Auth.Permission')
const AuthGroup = bookshelf.model('Django.Auth.Group')

AuthGroup.forge()
.fetch({withRelated: ['permissions', 'permissions.contentType']})
.then(function(permissions) {
  return permissions.getPermissions()
}).then(function(permissions) {
  console.log(permissions.map(AuthPermission.stringify))
})

Django.Auth.Groups

Groups of permissions collection

getPermissions() -> Promise<Django.Auth.Permissions>

Collection of unique permissions of group permissions.

const AuthPermission = bookshelf.model('Django.Auth.Permission')
const AuthGroups = bookshelf.collection('Django.Auth.Groups')

AuthGroups.all()
.fetch({withRelated: ['permissions', 'permissions.contentType']})
.then(function(permissions) {
  return permissions.getPermissions()
}).then(function(permissions) {
  console.log(permissions.map(AuthPermission.stringify))
})

Django.Auth.User

Django user collection

getPermissions() -> Promise<Django.Auth.Permissions>

Collection of unique permissions of group permissions and permissions.

const AuthPermission = bookshelf.model('Django.Auth.Permission')
const AuthUser = bookshelf.model('Django.Auth.User')

AuthUser.forge({id: 1})
.fetch()
.then(function(user) {
  return user.getPermissions()
}).then(function(permissions) {
  console.log(permissions.map(AuthPermission.stringify))
})

Django.Auth.Users

Django user collection

Testing your project

In beforeAll hook runs knex migrations in order

  • Django
  • Your project

All migrations must have own migration table (tableName property).

before(function() {
  knex.migrate.latest({directory: 'node_modules/bookshelf-django/migrations/', tableName: 'knex_migrations_django'})
}).then(function() {
  knex.migrate.latest({directory: 'src/migrations/', tableName: 'knex_migrations_my_project'})
})

In afterAll hook runs knex migrations in reverse order

  • Your project
  • Django
after(function() {
  knex.migrate.rollback({directory: 'src/migrations/', tableName: 'knex_migrations_my_project'})
}).then(function() {
  knex.migrate.rollback({directory: 'node_modules/bookshelf-django/migrations/', tableName: 'knex_migrations_django'})
})