# Two separate Django apps require the same models

**URL:** https://forum.djangoproject.com/t/two-separate-django-apps-require-the-same-models/22069
**Category:** Using the ORM
**Created:** [July 4, 2023, 11:41am UTC](https://forum.djangoproject.com/t/two-separate-django-apps-require-the-same-models/22069 "2023-07-04T11:41:29Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Theresa-o](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/theresa-o/32/7565_2.png) [@Theresa-o](https://forum.djangoproject.com/u/Theresa-o)
#### Post date: [July 4, 2023, 11:41am UTC](https://forum.djangoproject.com/t/two-separate-django-apps-require-the-same-models/22069/1 "2023-07-04T11:41:29Z")

</div>

If I have two apps that would share similar models e.g. a job board project with 2 apps - candidates and recruiters that have models - Skills and categories.

Since candidates would need to state their skills and experience category to get tailored jobs and recruiters would need to state the skills and category they want from a candidate when posting a job.

Would it be better if I create a utils folder with the skills and category model or should I create a skills and category model in the Candidates app and import the models into the Recruiters app?

What is the best practice for this?

---

<div class="post-metadata">

### Author: ![KenWhitesell](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/kenwhitesell/32/280_2.png) [@KenWhitesell](https://forum.djangoproject.com/u/KenWhitesell)
#### Post date: [July 4, 2023, 12:00pm UTC](https://forum.djangoproject.com/t/two-separate-django-apps-require-the-same-models/22069/2 "2023-07-04T12:00:06Z")

</div>

Regarding your specific question, the appropriate solution is that the models belong in one app and would be referenced by the other.

However, the very fact that you’re facing this issue raises the more fundamental question of “Do you want to do this at all?”, and my answer to _that_ would be a resounding “No.”

Personally, I don’t see where “Candidates” and “Recruiters” would be two separate apps. Superficially, I don’t see where I would reuse one of those without the other.

I’m of the mindset that you should only have one app in your project until either:

- There is a specific and coherent set of functionality that can (will) be reused across multiple projects.
- The project has gotten _so_ large that there’s no reasonable way to manage it as a single app. (Our threshold is somewhere around 50 models)

My gut reaction is that neither of those conditions would be true, and so both of those would belong in a “Jobs” app.

---

<div class="post-metadata">

### Author: ![Theresa-o](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/theresa-o/32/7565_2.png) [@Theresa-o](https://forum.djangoproject.com/u/Theresa-o)
#### Post date: [July 4, 2023, 12:07pm UTC](https://forum.djangoproject.com/t/two-separate-django-apps-require-the-same-models/22069/3 "2023-07-04T12:07:54Z")

</div>

Thanks, that makes sense.

Would follow your advice
