Нужно ли создавать одну модель для нескольких приложений в проекте одежды?

Я впервые создаю проект с Django. и это магазин электронной коммерции для одежды. моя путаница сейчас в том, что большинство товаров похожи, как женская одежда, мужская одежда, детская одежда. создание разных моделей в разных приложениях означает, что я должен повторить много кода, потому что большинство полей будут одинаковыми и некоторые операции будут более сложными для достижения, как глобальный поиск, и т.д.

Итак, должен ли я создать единую базу данных для всех товаров и отфильтровать то, что мне нужно в различных разделах, например, на странице мужской одежды, на странице женской одежды и т.д.?

#Для мужской модели

from django.db import models
from django.urls import reverse

# Create your models here.

CLOTH_CATEGORY_OPTIONS = (
    ("top", "Top"),
    ("bottom", "Bottom"),
    ("complete", "Complete"),
)
CLOTH_GENDER_OPTIONS = (
    ("male", "Male"),
    ("female", "Female"),
    ("unisex", "Unisex"),
)


class Wear(models.Model):
    cloth_name = models.CharField(max_length=50, unique=True)
    cloth_image = models.CharField(max_length=300)
    cloth_category = models.CharField(
        max_length=8, choices=CLOTH_CATEGORY_OPTIONS, default='top')
    cloth_gender = models.CharField(
        max_length=8, choices=CLOTH_GENDER_OPTIONS, default='male')
    cloth_price = models.FloatField()
    cloth_description = models.TextField()
    slug = models.SlugField(default='', editable=False,
                            max_length=200, null=False)

#Для женской модели

from django.urls import reverse

# Create your models here.

CLOTH_CATEGORY_OPTIONS = (
    ("top", "Top"),
    ("bottom", "Bottom"),
    ("complete", "Complete"),
)
CLOTH_GENDER_OPTIONS = (
    ("male", "Male"),
    ("female", "Female"),
    ("unisex", "Unisex"),
)


class WomensWear(models.Model):
    cloth_name = models.CharField(max_length=50, unique=True)
    cloth_image = models.CharField(max_length=300)
    cloth_category = models.CharField(
        max_length=8, choices=CLOTH_CATEGORY_OPTIONS, default='top')
    cloth_gender = models.CharField(
        max_length=8, choices=CLOTH_GENDER_OPTIONS, default='male')
    cloth_price = models.FloatField()
    cloth_description = models.TextField()
    slug = models.SlugField(default='', editable=False,
                            max_length=200, null=False)

Как вы можете видеть, это повторяется, поэтому я хочу создать глобальную базу данных, чтобы я мог импортировать ее в каждое приложение и отфильтровать для мужчин, женщин, детей и т.д.

Вам не нужно повторять весь этот код для каждого пола... Сделайте одну модель с полем Gender и укажите все полы. Вы можете фильтровать одежду в представлениях с помощью:

Wear.objects.all().filter(Gender=**Male or Women**)

Это отфильтрует ваши товары по указанному вами полу.

Создание двух моделей будет работать на вас. Модель ткани и модель пола Одна ткань может быть мужской или женской, или и той, и другой, поэтому будет работать от одного до многих

class Cloth(models.Model):
     gender = models.ForiegnKey(Gender)
     ....

Вы будете фильтровать, используя:

Cloth.objects.filter(gender__type="male")
Вернуться на верх