This commit is contained in:
Kseninia Mikhaylova 2025-02-11 15:30:57 +03:00
parent ee2878d9a4
commit f37b457007
2 changed files with 10 additions and 7 deletions

View File

@ -137,17 +137,16 @@ class Scene3D(models.Model):
class ClickableArea(models.Model): class ClickableArea(models.Model):
name = models.CharField( name = models.CharField(
"Название", verbose_name="Название",
max_length=255, max_length=255,
help_text="Название кликабельной области", help_text="Название кликабельной области",
) )
description = models.TextField( description = models.TextField(
"Описание", verbose_name="Описание",
help_text="Описание кликабельной области", help_text="Описание кликабельной области",
) )
target = models.ForeignKey( target = models.ForeignKey(
Scene3D, "Scene3D", # Предполагается, что Scene3D определен где-то выше или в том же файле
on_delete=models.PROTECT, on_delete=models.PROTECT,
related_name="clickable_areas", related_name="clickable_areas",
blank=True, blank=True,
@ -155,15 +154,19 @@ class ClickableArea(models.Model):
help_text="На какую сцену ведет клик", help_text="На какую сцену ведет клик",
) )
source = models.ForeignKey( source = models.ForeignKey(
Element3D, "Element3D", # Предполагается, что Element3D определен где-то выше или в том же файле
on_delete=models.PROTECT, on_delete=models.PROTECT,
help_text="В каком элементе искать object_name", help_text="В каком элементе искать object_name",
) )
object_name = models.CharField( object_name = models.CharField(
"Название объекта", verbose_name="Название объекта",
max_length=255, max_length=255,
help_text="Имя mesh или group в элементе 3D", help_text="Имя mesh или group в элементе 3D",
) )
def __str__(self): def __str__(self):
return self.name return self.name
class Meta:
verbose_name = "Кликабельная область" # Человекочитаемое имя одной записи
verbose_name_plural = "Кликабельные области" # Человекочитаемое имя множественного числа

View File

@ -64,7 +64,7 @@ watch(() => sidebar.id_clickable, () => {
<div class="sidebar-accordion-content" v-if="sidebar.isAccOpen('desc')"> <div class="sidebar-accordion-content" v-if="sidebar.isAccOpen('desc')">
<template <template
v-for="p in (sidebar.description || sidebar_scene.description || '').replace(/(\n|\r)+/g, '\n').split('\n')"> v-for="p in (sidebar.description || sidebar_scene.description || '').replace(/(\n|\r)+/g, '\n').split('\n')">
<p>{{ p }}</p> <p v-html="p"></p>
</template> </template>
<RouterLink :to="`/${route.params.item}/${sidebar.target}`" v-if="sidebar.target"> <RouterLink :to="`/${route.params.item}/${sidebar.target}`" v-if="sidebar.target">
Перейти Перейти