models.py
class Category(models.Model):
_id = models.ObjectIdField(
primary_key=True
)
name= models.CharField(
max_length=100,
verbose_name=_("Nombre")
)
image = models.CharField(
max_length=100,
verbose_name=_("Imagen"),
blank=True,
null=True
)
bgcolor = ColorField(
default='#FF0000',
verbose_name=_("Color"),
blank=True,
null=True
)
created_at = models.DateField(
auto_now_add=True,
blank=True,
verbose_name=_("Fecha de creación")
)
objects = models.DjongoManager()
@property
def pk(self):
return self._id
def __str__(self):
def __getitem__(self, name):
return getattr(self, name)
class Meta:
db_table = 'categories'
verbose_name = _('Categoría')
verbose_name_plural = _('Categorías')
class Provider(models.Model):
_id = models.ObjectIdField(
primary_key=True
)
name = models.CharField(
max_length=100,
verbose_name=_("Nombre")
)
code = models.CharField(
max_length=100,
verbose_name=_("Código"),
blank=True,
null=True
)
description = models.TextField(
verbose_name=_("Descripción"),
blank=True,
null=True
)
address = models.CharField(
max_length=255,
verbose_name=_("Dirección")
)
active= models.BooleanField(
verbose_name=_("Activo")
)
created_at = models.DateField(
auto_now_add=True,
blank=True,
verbose_name=_("Fecha de creación")
)
objects = models.DjongoManager()
@property
def pk(self):
return self._id
def __str__(self):
class Meta:
db_table = 'providers'
verbose_name = _('Proveedor')
verbose_name_plural = _('Proveedores')
class Manufacturer(models.Model):
_id = models.ObjectIdField()
name = models.CharField(
max_length=100,
verbose_name=_("Nombre")
)
description = models.TextField(
max_length=100,
verbose_name=_("Descripción"),
blank=True,
null=True
)
image = models.CharField(
max_length=100,
verbose_name=_("Imagen"),
blank=True,
null=True
)
active = models.BooleanField(
verbose_name=_("Activo")
)
providersId = models.ArrayReferenceField(
to=Provider,
default=[],
on_delete=models.CASCADE,
verbose_name="Proveedores",
related_name="manufacturer",
db_column='providers',
)
categoriesId= models.ArrayReferenceField(
to=Category,
on_delete=models.CASCADE,
verbose_name="Categorias",
db_column='categories',
)
created_at = models.DateField(
auto_now_add=True,
blank=True,
verbose_name=_("Fecha de creación")
)
objects = models.DjongoManager()
@property
def pk(self):
return self._id
def __str__(self):
class Meta:
db_table = 'manufacturers'
verbose_name = _('Marca')
verbose_name_plural = _('Marcas')
class ManufacturerForm(forms.ModelForm):
providersId = forms.ModelMultipleChoiceField(
queryset=Provider.objects.filter(
active__in=[True]
),
widget=FilteredSelectMultiple(
Provider._meta.verbose_name_plural,
False
),
required=False,
label=("Proveedores de la marca")
)
categoriesId = forms.ModelMultipleChoiceField(
queryset=Category.objects.filter(
active__in=[True]
),
widget=FilteredSelectMultiple(
Category._meta.verbose_name_plural,
False
),
required=False,
label=("Categorías de la marca")
)
class Meta:
model = Manufacturer
fields = '__all__'
@admin.register(Manufacturer)
class AdminManufacturer(admin.ModelAdmin):
list_display = ('name','active','created_at')
search_fields = ['name']
form = ManufacturerForm