AK
Size: a a a
AK
AK
AK
my_model_2_parameters = MySerializer2(read_only=True,
source='название_поля_связи')
PZ
max_depth=2
в мету первого сериализатора добавьAK
max_depth=2
в мету первого сериализатора добавьPZ
AK
max_depth=2
в мету первого сериализатора добавьPZ
AK
RN
AK
class ToolGeoParametersSerializer(serializers.ModelSerializer):
class Meta:
model = ToolGeoParameters
fields = ('tool', 'lat', 'lon', 'resolution', 'max_scale', 'min_scale')
class DescriptionSerializer(serializers.ModelSerializer):
# resolution = serializers.ReadOnlyField(source="toolgeoparameters.resolution")
tool_geo = ToolGeoParametersSerializer(read_only=True, source='tool')
class Meta:
model = Tool
fields = ('name', 'name_header', 'description_of_work', 'working_method_tool', 'tool_geo')
DT
AK
RN
AK
class Tool(models.Model):
is_active = models.BooleanField(_('Активен'), default=True)
name = models.CharField(_('Название'), max_length=255)
name_header = models.TextField(_('Название инструмента'), blank=True, null=True)
code = models.CharField(_('Код'), max_length=255, unique=True, db_index=True)
description = models.TextField(_('Описание'), blank=True, null=True)
description_of_work = models.TextField(_('Описание работы инструмента'), blank=True, null=True)
group = models.ForeignKey(ToolGroup, verbose_name=_('Группа'), blank=True, null=True, on_delete=models.PROTECT)
operations = models.ManyToManyField(Operation, verbose_name=_('Операции'), blank=True)
image = models.ImageField(upload_to=upload_to, blank=True, null=True)
working_method_tool = models.TextField(_('Метод работы инструмента'), blank=True, null=True)
class Meta:
verbose_name = _('Инструмент')
verbose_name_plural = _('Инструменты')
def __str__(self):
return self.name
class ToolGeoParameters(models.Model):
tool = models.OneToOneField(Tool, verbose_name=_('Инструмент'), on_delete=models.CASCADE, primary_key=True)
lat = models.FloatField(_('Широта'), blank=True, null=True)
lon = models.FloatField(_('Долгота'), blank=True, null=True)
resolution = models.IntegerField(_('Изначальное разрешение'), blank=True, null=True)
min_scale = models.IntegerField(_('Минимальное разрешение'), blank=True, null=True)
max_scale = models.IntegerField(_('Максимальное разрешение'), blank=True, null=True)
class Meta:
verbose_name = _('Геоданные инструмента для расчета')
def __str__(self):
return self.tool.name
BB
class Tool(models.Model):
is_active = models.BooleanField(_('Активен'), default=True)
name = models.CharField(_('Название'), max_length=255)
name_header = models.TextField(_('Название инструмента'), blank=True, null=True)
code = models.CharField(_('Код'), max_length=255, unique=True, db_index=True)
description = models.TextField(_('Описание'), blank=True, null=True)
description_of_work = models.TextField(_('Описание работы инструмента'), blank=True, null=True)
group = models.ForeignKey(ToolGroup, verbose_name=_('Группа'), blank=True, null=True, on_delete=models.PROTECT)
operations = models.ManyToManyField(Operation, verbose_name=_('Операции'), blank=True)
image = models.ImageField(upload_to=upload_to, blank=True, null=True)
working_method_tool = models.TextField(_('Метод работы инструмента'), blank=True, null=True)
class Meta:
verbose_name = _('Инструмент')
verbose_name_plural = _('Инструменты')
def __str__(self):
return self.name
class ToolGeoParameters(models.Model):
tool = models.OneToOneField(Tool, verbose_name=_('Инструмент'), on_delete=models.CASCADE, primary_key=True)
lat = models.FloatField(_('Широта'), blank=True, null=True)
lon = models.FloatField(_('Долгота'), blank=True, null=True)
resolution = models.IntegerField(_('Изначальное разрешение'), blank=True, null=True)
min_scale = models.IntegerField(_('Минимальное разрешение'), blank=True, null=True)
max_scale = models.IntegerField(_('Максимальное разрешение'), blank=True, null=True)
class Meta:
verbose_name = _('Геоданные инструмента для расчета')
def __str__(self):
return self.tool.name
Z
AK
BB