Джанго отношения один ко многим (0..4) - PullRequest
0 голосов
/ 15 мая 2018

Хотелось бы узнать, есть ли какая-то связь с 0..4.

Я имею в виду, 1 пользователь имеет от 0 до 4 устройств, а 1 устройство принадлежит пользователю.

Как я могу это представить? То, что 0..4 может быть представлено или должно контролироваться логикой моей программы?

1 Ответ

0 голосов
/ 15 мая 2018

Когда вы создаете новое устройство, в чистом методе проверьте, что для этого пользователя не более 4 устройств. Что-то вроде:

class Device(models.Model):
    user = models.ForeignKey(User)
    # ...

    def clean(self):
        user_devices = self.user.device_set.all()
        if self.pk:
            # Exclude me
            user_devices = user_devices.exclude(pk=self.pk)

        if user_devices.count() >= 4:
            raise ValidationError({'user': "Cant have more than 4 devices"})
...