diff --git a/headphones/admin.py b/headphones/admin.py index 77711ce..8ada4fb 100644 --- a/headphones/admin.py +++ b/headphones/admin.py @@ -390,6 +390,20 @@ class NoiseCancellationTypeAdmin(admin.ModelAdmin): prepopulated_fields = {'slug': ('name',)} +@admin.register(HeadphonesMicrophoneType) +class HeadphonesMicrophoneTypeAdmin(admin.ModelAdmin): + list_display = ('type', 'description') + search_fields = ('type',) + prepopulated_fields = {'type': ('description',)} + + +@admin.register(HeadphonesCaseIP) +class HeadphonesCaseIPAdmin(admin.ModelAdmin): + list_display = ('code', 'description') + search_fields = ('code',) + prepopulated_fields = {'code': ('description',)} + + @admin.register(CodecType) class CodecTypeAdmin(admin.ModelAdmin): list_display = ('name',) diff --git a/headphones/models.py b/headphones/models.py index a1a38f7..eae290f 100644 --- a/headphones/models.py +++ b/headphones/models.py @@ -206,7 +206,7 @@ class DriverModel(models.Model): class DriverType(models.Model): name = models.CharField(max_length=50, verbose_name="Тип драйвера") - encoding = models.CharField(blank=True, max_length=10, verbose_name="Буквенное обозначение>") + encoding = models.CharField(blank=True, max_length=10, verbose_name="Буквенное обозначение") slug = models.SlugField(unique=True, verbose_name="URL-идентификатор") class Meta: @@ -622,7 +622,22 @@ class HeadphonesMicrophoneType(models.Model): description = models.CharField(blank=True, verbose_name="Описание") class Meta: - verbose_name = "Тип микрофона" + verbose_name = "Ресурс обзора" + + def __str__(self): + return self.type + + +class HeadphonesCaseIP(models.Model): + code = models.CharField(max_length=50, verbose_name="Код степени защиты") + description = models.CharField(blank=True, verbose_name="Описание степени защиты") + + class Meta: + verbose_name = "Степень защиты" + + def __str__(self): + return self.code + # ====================== # Основная модель наушников @@ -744,9 +759,12 @@ class Headphones(models.Model): ) # Дополнительные функции - microphone = models.BooleanField( - verbose_name="Встроенный микрофон", - default=False, + microphone = models.ForeignKey( + HeadphonesMicrophoneType, + on_delete=models.PROTECT, + null=True, + blank=True, + verbose_name="Тип микрофона", ) noise_cancellation = models.ForeignKey( NoiseCancellationType, @@ -755,8 +773,10 @@ class Headphones(models.Model): blank=True, verbose_name="Шумоподавление", ) - ip_rating = models.CharField( - max_length=10, + ip_rating = models.ForeignKey( + HeadphonesCaseIP, + on_delete=models.PROTECT, + null=True, blank=True, help_text="Например: IPX4", verbose_name="Степень защиты (IP)",