madhukar93
madhukar93

Reputation: 515

where to put relation models in django

First the simplified scenario:

from django.db import models

class Product(models.Model):
    name = models.TextField()
    description = models.TextField()

class Merchant(models.Model):
    name = models.TextField()

class MerchantProductMapping(models.Model):
    merchant = models.ForeignKey(Merchant)
    product = models.ForeignKey(Product)
    price = models.IntegerField()
    inventory_limit = models.IntegerField()

I have another model for the relation (MerchantProductMapping) because the relation has attributes of its own. Now the requirements of the Merchant and the Product model have grown to a point where they demand separate apps of their own. The merchant app's models.py is where the Merchant model will live and the product app's models.py is where the Product model will live.
What I need help with is the relation model MerchantProductMapping. It is needed by both apps, where should I put it ? I've been reading up on mixins and wondering if they could help me somehow.
EDIT: I should add that the app was rendered server side earlier. Now it will be done using angular client - REST api approach. And django rest framework will be used on top of django.

Upvotes: 1

Views: 118

Answers (1)

madzohan
madzohan

Reputation: 11808

Create "common" app for such purposes ... you can put there decorators, templatetags, base forms, base models, login|logout redirect views and urls, ajax views, base filters, base tables ... etc

Note: create "apps" python package dir (dir with __init__.py inside it) and (refactor) move all your apps there.

EDIT:

Another way - create "models" python package dir and split your models.py to logically separated files inside package

Upvotes: 3

Related Questions