Как определить отношения в Django Models таким образом, чтобы место в модели могло быть выделено объекту без перекрытия?
Мне нужно определить модель в Django таким образом, чтобы она проверяла, что объекты сервера могут поместиться в рассматриваемый объект стойки, не перекрывая друг друга, и что вы используете только столько места (в Us), сколько у вас на самом деле есть в стойке. Я попробовал определить модель Django следующим образом:
from django.db import models
class Location(models.Model):
name = models.CharField(max_length =200)
def __str__(self):
return str(self.name)
class Rack(models.Model):
id = models.IntegerField(primary_key = True, auto_created = True)
size = models.IntegerField()
location = models.ManyToManyField(Location)
def __str__(self):
return str(self.id)
class Server(models.Model):
id = models.IntegerField(primary_key= True, auto_created=True)
size = models.IntegerField()
rack_id = models.ForeignKey(Rack, on_delete=models.CASCADE)
owner = models.CharField(max_length = 200)
locations = models.OneToOneField(Location, on_delete=models.CASCADE)
def __str__(self):
return str(self.id)
Я не знаю, как определить местоположение таким образом, чтобы при выборе места для сервера, он был назначен на место в стойке, не перекрывая это место другим сервером. В то же время, мне нужно убедиться, что я использую только столько места (в Us), сколько у меня на самом деле есть в стойке.