Как я могу проверить, является ли реферальный код действительным и отправлен ли он другим пользователем?
Я работаю над модулем 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)
Это вид формы:
Я не пытаюсь понять, что писать в файле 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']
......
......
......