Nitesh Kumar  Singh
Nitesh Kumar Singh

Reputation: 164

Admin : Select category -> show subcategory using django

how to show category and subcategory : Admin : Select category -> show subcategory using Django

class Category(models.Model):
    categoryName = models.CharField(max_length=100)

    def __unicode__(self):
        return self.categoryName

class Subcategory(models.Model):
    subcategoryName=models.CharField(max_length=100)
    category = models.ForeignKey(Category, null=True, blank=True)

    def __unicode__(self):
        return self.subcategoryName


class Product(models.Model):
    productName = models.CharField(max_length=100)
    productImage = models.ImageField(upload_to='documents/')
    category = models.ForeignKey(Category, null=True, blank=True)
    subcategory = models.ForeignKey(Subcategory, null=True, blank=True)

    def __unicode__(self):
        return self.productName

admin product form

Upvotes: 0

Views: 1233

Answers (2)

Mubariz Feyziyev
Mubariz Feyziyev

Reputation: 412

remove Subcategory model and write Category model like this

class Category(models.Model):
    categoryName=models.CharField(max_length=100)
    parent = models.ForeignKey("Category", null=True, blank=True)

    def __unicode__(self):
         return self.categoryName

and remove subcategory field from Product. Writing like this is more neat

Upvotes: 1

helioascorreia
helioascorreia

Reputation: 86

What you are looking is a reverse relationship, to do that you use models.ForeignKey('self', on_delete=models.CASCADE). The official doc is here https://docs.djangoproject.com/en/1.10/ref/models/fields/#foreignkey

I hope it helps Best

Upvotes: 0

Related Questions