Update driver frequency_response_chart
This commit is contained in:
parent
967da2ba42
commit
bb9d63b448
2 changed files with 31 additions and 5 deletions
|
|
@ -209,7 +209,7 @@ class HeadphonesAdmin(admin.ModelAdmin):
|
|||
'fields': [
|
||||
('impedance', 'sensitivity'),
|
||||
'frequency_range',
|
||||
'frequency_response_chart',
|
||||
('frequency_response_chart', 'frequency_response_chart_author', 'frequency_response_chart_link'),
|
||||
('microphone', 'noise_cancellation'),
|
||||
'ip_rating',
|
||||
]
|
||||
|
|
@ -378,8 +378,8 @@ class TagsAdmin(admin.ModelAdmin):
|
|||
|
||||
@admin.register(DriverType)
|
||||
class DriverTypeAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'slug')
|
||||
search_fields = ('name',)
|
||||
list_display = ('name', 'slug', 'encoding')
|
||||
search_fields = ('name', 'encoding')
|
||||
prepopulated_fields = {'slug': ('name',)}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ def upload_to_case_image(instance, filename):
|
|||
ext = filename.split('.')[-1]
|
||||
return f"headphones/{instance.headphones.id}/case_images/{instance.slug}.{ext}"
|
||||
|
||||
def upload_to_frequency_response(instance, filename):
|
||||
return f"headphones/{instance.headphones.id}/frequency_response/{filename}"
|
||||
|
||||
# ======================
|
||||
# Базовые справочники
|
||||
# ======================
|
||||
|
|
@ -203,6 +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="Буквенное обозначение>")
|
||||
slug = models.SlugField(unique=True, verbose_name="URL-идентификатор")
|
||||
|
||||
class Meta:
|
||||
|
|
@ -612,6 +616,14 @@ def delete_image_file(sender, instance, **kwargs):
|
|||
except Exception as e:
|
||||
print(f"Ошибка при удалении файла (сигнал): {e}")
|
||||
|
||||
|
||||
class HeadphonesMicrophoneType(models.Model):
|
||||
type = models.CharField(max_length=50, verbose_name="Тип микрофона")
|
||||
description = models.CharField(blank=True, verbose_name="Описание")
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Тип микрофона"
|
||||
|
||||
# ======================
|
||||
# Основная модель наушников
|
||||
# ======================
|
||||
|
|
@ -684,12 +696,26 @@ class Headphones(models.Model):
|
|||
)
|
||||
|
||||
# Технические характеристики
|
||||
frequency_response_chart = models.JSONField(
|
||||
verbose_name="АЧХ (JSON)",
|
||||
frequency_response_chart = models.FileField(
|
||||
verbose_name="АЧХ (CSV)",
|
||||
upload_to = upload_to_frequency_response,
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Данные в формате [{'frequency': 20, 'amplitude': -2.5}, ...]"
|
||||
)
|
||||
|
||||
frequency_response_chart_author = models.CharField(
|
||||
verbose_name="Автор АЧХ",
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
|
||||
frequency_response_chart_link = models.CharField(
|
||||
verbose_name="Ссылка на АЧХ",
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
|
||||
impedance = models.DecimalField(
|
||||
verbose_name="Импеданс (Ом)",
|
||||
max_digits=5,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue