Django Models for OJS

For those of you who don’t know — OJS (Open Journal Systems) is a PHP application developed by PKP (Public Knowledge Project). PKP have been around since they were founded by John Willinsky in 1998 and OJS came around not long after that.

Ubiquity Press is currently in the process of developing an offline tool that will allow Editors to load up manuscripts and publish them into OJS journals. As fans of the Django Framework, we thought it would be interesting to attempt to generate a working models file for OJS and use it alongside Django Rest Framework for an API that the offline tool would use.

The project we started is called Intersect (taken from the name of a super computer developed by the CIA and NSA for data sharing in the TV show Chuck)

OJS’ database is not suited to Django’s ORM. There are a distinct lack of foreign keys and constraints and there are many tables that make use of compound primary keys (which Django particularly hates). To get around this, we will be making some relatively harmless changes to our DBs:

  • Article Settings : id (auto_increment, primary key)
  • Issue Settings : id (auto_increment, primary key)
  • Journal Settings : id (auto_increment, primary key)
  • Author Settings : id (auto_increment, primary key)
  • user_profiles table : foreignkey ids :intersect_user (auth_users) [PK] + journal (Journals) + user (users)

The project is still being developed, but the can be found on Github.

Pub Tech developer for Birkbeck CTP

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Andy Byers

Andy Byers

Pub Tech developer for Birkbeck CTP