Reputation: 665
When I run my django project on ssh server, I got follwing error
coercing to Unicode: need string or buffer, User found.
This is my models.py file
class Employee(models.Model):
user = models.OneToOneField(User)
address = models.CharField(max_length=200, blank=True)
name = models.CharField(max_length=200, blank=True)
designation = models.CharField(max_length=20, blank=True, choices=
DESIGNATION_CHOICES)
project = models.CharField(max_length=50, blank=True)
task = models.CharField(max_length=50, blank=True)
image = models.ImageField(upload_to="media/images/", blank=True)
def __unicode__(self):
return self.user
what is the error here?
Upvotes: 0
Views: 1185
Reputation: 22449
A OneToOneField
returns the user instance
which cannot be coerced to unicode, as the error already told you. A few possible solutions:
def __unicode__(self):
return str(self.user) # mind you this isn't gonna be a very useful
def __unicode__(self):
return self.user.id
def __unicode__(self):
return self.user.get_full_name()
def __unicode__(self):
return self.user.username
def __unicode__(self):
return self.user.get_full_name() or self.user.username
Basically any method or attribute on user can be returned
Upvotes: 2