46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
from django.conf import settings
|
|
from django.db import models
|
|
|
|
class BaseCustomField(models.Model):
|
|
name = models.CharField(max_length=120, )
|
|
text = models.TextField()
|
|
Image = models.ImageField(upload_to='images/')
|
|
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class CustomTable(models.Model):
|
|
name = models.CharField(max_length=120, )
|
|
fields = models.ManyToManyField(BaseCustomField)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class Image(models.Model):
|
|
file = models.ImageField(upload_to='images/')
|
|
alt = models.CharField(max_length=255)
|
|
title = models.CharField(max_length=255)
|
|
|
|
def __str__(self):
|
|
return self.title
|
|
|
|
|
|
class Element3D(models.Model):
|
|
model_file = models.FileField(upload_to='models/')
|
|
name = models.CharField(max_length=255)
|
|
description = models.TextField()
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class ClickableArea(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
description = models.TextField()
|
|
object_name = models.CharField(max_length=255)
|
|
target = models.ForeignKey(Element3D, on_delete=models.CASCADE, related_name='clickable_areas')
|
|
|
|
def __str__(self):
|
|
return self.name
|