title: Django - NameError: name 'Post' is not defined in many to many relationship
body: <p>I'm very new to Python and Django. I'm trying to create a basic blog engine containing categories, posts and tags.</p>
  
  <p>A category will have multiple posts</p>
  
  <p>A post will have multiple tags</p>
  
  <p>So i designed my models like this:</p>
  
  <pre><code>from django.db import models
  
  class Category(models.Model):
      category_name = models.CharField(max_length=200)
      posts = models.ManyToManyField(Post)
  
      def __str__(self):              
          return self.category_name
  
  class Post(models.Model):
      post_title = models.CharField(max_length=200)
      post_body = models.TextField()
      post_tags = models.ManyToManyField(Tag)
  
      def __str__(self):
          return self.post_title
  
  class Tag(models.Model):
      tag_title = models.CharField(max_length=200)
  
      def __str__(self):
          return self.tag_title
  </code></pre>
  
  <p>When i run <code>python manage.py migrate</code> command, i am getting </p>
  
  <pre><code>File "/Development/Projects/pBlog/blogEngine/models.py", line 6, in Category
      posts = models.ManyToManyField(Post)
  NameError: name 'Post' is not defined
  </code></pre>
  
  <p>Error. Is there any syntax error? I have .Net background i might need to change my whole approach. </p>