title: Why __unicode__ doesn't work but __str__ does?
body: <p>I'm trying to break some rock by developing a website on my own, and I'm starting by creating some registry pages and listing database records.</p>
  
  <p>I'm getting bugged with the fact that <code>__unicode__</code> method doesn't print the username of my records and <code>__str__</code> does! </p>
  
  <p>I know that using <code>__unicode__</code> is the best practice to have, but I can only print my object username with <code>__str__</code>.</p>
  
  <p>Can anybody explain why this happens?</p>
  
  <p>My Model:</p>
  
  <pre><code>from django.db import models
  
  class User(models.Model):
      username = models.CharField(max_length=200)
      reg_date = models.DateTimeField('registry date')
  
      def __unicode__(self):
          return self.username
  </code></pre>
  
  <p>My admin.py:</p>
  
  <pre><code>from django.contrib import admin
  from registo.models import User
  
  admin.site.register(User)
  </code></pre>
  
  <p>My <code>__unicode__(self)</code> output:</p>
  
  <pre><code>User
      User object
  </code></pre>
  
  <p>My <code>__str__(self)</code> output:</p>
  
  <pre><code>User
      Teste
  </code></pre>
  
  <p>Thanks for your cooperation in advance!</p>