title: How to connect models from different apps in Django?
body: <p>I have a few apps within my Django project. There are two apps that I am currently working with "Application" and "User" and I have two questions related to models: </p>
  
  <p><strong> Question 1: </strong></p>
  
  <p>I want to design it in such a way so that external users submit their contact form on <code>Application/templates/Application/Apply.html</code> and the info would get added to the database. Internal users would be able to add external users as well but from a different template: <code>User/templates/User/AddNewContact.html</code></p>
  
  <p>I am able to add a new contact from an internal user's perspective: </p>
  
  <p><code>User/models.py</code></p>
  
  <pre><code>class Contact(models.Model):
      ContactName = models.CharField(max_length = 250, default='')
      ContactResidence = models.CharField(max_length = 250, default='')
      Tel = models.CharField(max_length = 250, default='')
  
      def get_absolute_url(self):
          return reverse('User:ContactDetails', kwargs={'pk': self.pk}
          )
  
      def __str__(self):
          return self.ContactName
  
  
  
  class Locations(models.Model):
      contact = models.ForeignKey(Contact, on_delete=models.CASCADE)
      Country = models.CharField(max_length=250, default='')
  
      def __str__(self):
          return self.Country
  </code></pre>
  
  <p>I was going to just copy this model and paste it into Application/models.py but there are two problems: </p>
  
  <p><strong>1) I don't want external users to be directed to URL: <code>User:ContactDetails</code> and technically, it is not going to work out because I will build the authentication later on. </strong></p>
  
  <p>2) I feel that by copying and pasting I am breaking the 'don't repeat yourself" rule. </p>
  
  <p>Should I connect two models using the foreign keys? What are the best practices in this case? </p>
  
  <p><strong> Question 2 </strong></p>
  
  <p>Am I working with one-to-many relationship according to the model provided? I want to have one contact with his personal info (tel/email/address) and a number of branch locations across the world associated with that contact.</p>