Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django __str__ returned non-string (type NoneType)

I am getting __str__ returned non-string (type NoneType) error at edit Product Model object

enter image description here

Product Model

class Product(models.Model):
    ProductName = models.CharField(blank=True, max_length=250)
    Price = models.FloatField(blank=True, default=9.99)
    Tax = models.FloatField(blank=True, null=True, default=0.0)
    StoreId = models.IntegerField(blank=True, null=True)
    RelatedStore = models.ForeignKey(Store, blank=True, null=True)
    Category = models.CharField(max_length=200,
                                blank=True, null=True,
                                default='No Specific Category')
    ProductImage = models.CharField(max_length=400, null=True, blank=True)
    Features = models.TextField(blank=True, null=True)
    ProductSize = models.IntegerField(blank=True, null=True, default=3)
    FavoriteField = models.BooleanField(blank=True, default=False)
    Active = models.BooleanField(blank=True, default=True)

    def __unicode__(self):
        return self.ProductName

    def __str__(self):
        return self.ProductName

Any helpful answer will be appreciated.

like image 753
Satnarayan Aggarwal Avatar asked Nov 05 '17 11:11

Satnarayan Aggarwal


2 Answers

you can try:

def __str__(self):
    return str(self.ProductName) if self.ProductName else ''
like image 147
navyad Avatar answered Nov 03 '22 00:11

navyad


I little late but change the return as follows:

def __str__(self):
    return str(self.ProductName)
like image 35
Jorge López Avatar answered Nov 02 '22 23:11

Jorge López