Как обеспечить условия во многих областях? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть страница администратора django, где я могу добавить сервисы и карту, затем в 3 типах лабораторий (Professional, Innovation and partner).

Затем я создаю лаборатории, там я даю тип лабораториии выберите услуги при создании.

Что я не могу понять, так это то, что, если я собираюсь создать профессиональную лабораторию, лаборатория должна создаваться только в том случае, если я выберу службы, которые отображаются в Профессиональной лаборатории.

Я добавил код модели и снимки ниже.

Страница создания лаборатории и страница создания службы, у нас есть кнопка сохранения, которая здесь не видна Lab creation page, we have a save button which is not seen here

[Service creation page[2]

Службы создаются с помощью этой функции

Служба класса (models.Model):

name = models.CharField(max_length=50)
fullname = models.CharField(max_length=100)
cloud = models.CharField(max_length=10, default='aws')

__Here the services are mapped to labs using check-boxes__
in_professional = models.BooleanField(default=False)
in_innovation = models.BooleanField(default=False)
in_partner = models.BooleanField(default=False)

def save(self, *args, **kwargs):
    self.name = self.name.lower()
    self.fullname = self.fullname.title()
    self.cloud = self.cloud.lower()
    super(Service, self).save(*args, **kwargs)

def __str__(self):
    return self.name

Лаборатории создаются в этой функции

класс Lab (models.Model):

class Meta:
    unique_together = (('name', 'cloud'),)
name = models.CharField(max_length=100)

__The input for lab type is given here__
type = models.CharField(max_length=100, default='professional')   # 'professional' | 'innovation' | 'partner'
cloud = models.CharField(max_length=25, default='aws')
budget_allocated = models.IntegerField(default=1)
budget_spent = models.IntegerField(default=0)
configuration = JSONField(default=None, null=True)
status = models.CharField(max_length=200, default="Inactive")
users = models.ManyToManyField(User)

__services are selected using manytomanyfeild here__
services = models.ManyToManyField(Service)

toolkits = models.ManyToManyField(Toolkit)

def __str__(self):
    return self.name
...