How to design model in Django?

Please tell me according to the following scheme. I need to make a menu with 3 hierarchies:
Home -> Category-> Product.
Products are several types. There is an abstract class and subclass 2 with their properties:

class Main()
 class Meta:
 abstract = True

class Tovar1(Main)
class Tovar2(Main)


each class of subordinate (Tovar1, Tovar2) can belong to multiple categories. That is not stick, how to add categories. At first I thought the class with a ForeignKey to Category Tovar1 and Tovar2.
But each entry will require filling And Tovar1 And Tovar2 that is not required.
Then I thought for Many, but that is also not makes a pattern...
In General, I ask the audience ;-)
April 3rd 20 at 17:26
2 answers
April 3rd 20 at 17:28
At first I thought the class with a ForeignKey to Category Tovar1 and Tovar2.

ForeignKey is on the contrary, the goods must indicate the category
PS missed "can belong to multiple categories", then a ForeignKey changing for Many. ForeignKey and only if the product is in the same category.
April 3rd 20 at 17:30
Made using ManyToManyField

Find more questions by tags Django