Ограничение регистрации пользователей с помощью регистрационного ключа

Я хочу ограничить круг лиц, которые могут зарегистрироваться на моем сайте. Я хочу добиться этого, запрашивая регистрационный ключ в форме регистрации. Ключ должен действовать X раз, чтобы его не могли использовать все и всегда.

Я создал две отдельные модели, одну модель пользователя и одну модель регистрационного ключа. В модели пользователя я создал ключевое поле, которое является внешним ключом, связанным с моделью регистрационного ключа. Вот мои две модели

class RegistrationKey(models.Model):
    key = models.CharField(max_length=30)
    max_amount = models.IntegerField(null=True)


class User(AbstractUser):
...
    key = models.ForeignKey(RegistrationKey, on_delete=models.CASCADE)

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

Вернуться на верх