Django Models for OJS

Andy Byers
1 min readFeb 7, 2016

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 models.py can be found on Github.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Andy Byers
Andy Byers

Written by Andy Byers

Pub Tech developer for Birkbeck CTP

No responses yet

Write a response