@Thrashches

Django. Как правильней организовать связи?

Проектирую базу данных оборудования. Встал вопрос правильной организации связей между моделями.
На данный момент код следующий:
class Person(models.Model):
    fullname = models.CharField(max_length=30)
   #shop_accounts = models.ManyToManyField('ShopAccount', blank=True)
   #stuff = models.ManyToManyField('Staff', blank=True)  
    def __str__(self):
        return str(self.fullname)


class Shop(models.Model):
    name = models.CharField(max_length=30)
    url = models.CharField(max_length=100)
#accounts?
#persons?

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


class ShopAccount(models.Model):
    login = models.CharField(max_length=30)
    password = models.CharField(max_length=100)
    person = models.ForeignKey(Person, on_delete=models.CASCADE)#on_delete=models.SET(Person)
    shop = models.ForeignKey(Shop, on_delete=models.CASCADE)
    
    def __str__(self):
        return str(self.login)


class Stuff(models.Model):
    name = models.CharField(max_length=30)
    person = models.ForeignKey(Person, on_delete=models.CASCADE)#on_delete=models.SET(Person)
    shop = models.ForeignKey(Shop, on_delete=models.CASCADE)
    shop_account = models.ForeignKey(ShopAccount, on_delete=models.CASCADE)
    comment = models.CharField(max_length=140, blank=True)
    #here will be additional attributes

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

Мне хотелось бы чтобы при заполнении таблицы Stuff, я, выбирая магазин(Shop) видел только тех лиц(Person), которые в нем покупали, и соответствующий аккаунт был жестко привязан к магазину и лицу. Думаю что правильнее решить это на уровне моделей, а не во фронтэнде. Как в данном случае лучше было бы организовать отношения между этими моделями?
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы