Как я могу проверить, является ли реферальный код действительным и отправлен ли он другим пользователем?

Я работаю над модулем refer and earn и меня интересует, как проверить, действителен ли код ссылки и отправлен ли он другим пользователем, чтобы я мог вернуть ему комиссию.

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

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

Любая помощь будет оценена по достоинству. Спасибо.

Models.py:

class Referral(models.Model):

    user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="referral_codes", null=True, blank=True)
    label = models.CharField(max_length=100, blank=True)
    code = models.CharField(max_length=40, unique=True, blank=True)
    comm_amount = models.PositiveIntegerField(max_length=20, null=True, blank=True)
    expired_at = models.DateTimeField(null=True, blank=True)
    redirect_to = models.CharField(max_length=512,blank=True)

    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        if self.user:
            return f"{self.user} ({self.code})"
        else:
            return self.code

    def generate_refer_code(self):
        return get_random_string(8).upper()

    def save(self, *args, **kwargs):
        if not self.pk:
            self.code = self.generate_refer_code()
        elif not self.code:
            self.code = self.generate_refer_code()

        return super(Referral, self).save(*args, **kwargs)

Это вид формы:

enter image description here

Я не пытаюсь понять, что писать в файле views.py:


#Check if the refercode is valid for the user
def ReferralCheck(request):
    if request.method == "POST":
        user = request.user
        code = request.POST['code']
         ......
         ......
         ......
Вернуться на верх