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': [
|
'fields': [
|
||||||
('impedance', 'sensitivity'),
|
('impedance', 'sensitivity'),
|
||||||
'frequency_range',
|
'frequency_range',
|
||||||
'frequency_response_chart',
|
('frequency_response_chart', 'frequency_response_chart_author', 'frequency_response_chart_link'),
|
||||||
('microphone', 'noise_cancellation'),
|
('microphone', 'noise_cancellation'),
|
||||||
'ip_rating',
|
'ip_rating',
|
||||||
]
|
]
|
||||||
|
|
@ -378,8 +378,8 @@ class TagsAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
@admin.register(DriverType)
|
@admin.register(DriverType)
|
||||||
class DriverTypeAdmin(admin.ModelAdmin):
|
class DriverTypeAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'slug')
|
list_display = ('name', 'slug', 'encoding')
|
||||||
search_fields = ('name',)
|
search_fields = ('name', 'encoding')
|
||||||
prepopulated_fields = {'slug': ('name',)}
|
prepopulated_fields = {'slug': ('name',)}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@ def upload_to_case_image(instance, filename):
|
||||||
ext = filename.split('.')[-1]
|
ext = filename.split('.')[-1]
|
||||||
return f"headphones/{instance.headphones.id}/case_images/{instance.slug}.{ext}"
|
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):
|
class DriverType(models.Model):
|
||||||
name = models.CharField(max_length=50, verbose_name="Тип драйвера")
|
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-идентификатор")
|
slug = models.SlugField(unique=True, verbose_name="URL-идентификатор")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
@ -612,6 +616,14 @@ def delete_image_file(sender, instance, **kwargs):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Ошибка при удалении файла (сигнал): {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(
|
frequency_response_chart = models.FileField(
|
||||||
verbose_name="АЧХ (JSON)",
|
verbose_name="АЧХ (CSV)",
|
||||||
|
upload_to = upload_to_frequency_response,
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
help_text="Данные в формате [{'frequency': 20, 'amplitude': -2.5}, ...]"
|
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(
|
impedance = models.DecimalField(
|
||||||
verbose_name="Импеданс (Ом)",
|
verbose_name="Импеданс (Ом)",
|
||||||
max_digits=5,
|
max_digits=5,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue