Я хочу публиковать данные в поле Bonus из функции, созданной на основе случайного выбора элементов списка

Я пытаюсь сделать api для колеса, которое вращается и мы получаем случайное вознаграждение, поэтому я использую список и функцию random. Я хочу сохранить данные в поле Bonus из функции соответствует случайному выбору if else condition. Я пробовал следующее.

models.py

class Wallet(models.Model):
    user = models.ForeignKey(User, null=True, related_name='wallet_mobile', on_delete=models.CASCADE)
    total_amount = models.FloatField(_('Total amount'), default=10)
    add_amount = models.FloatField(_('Add amount'), default=0)
    deposit_cash = models.FloatField(_('Full Add amount'),default=0)
    win_amount = models.FloatField(default=0)
    winning_cash = models.FloatField(default=0)
    withdraw_amount = models.FloatField(default=0)
    amount = models.DecimalField(_('amount'), max_digits=10, decimal_places=2, default=10)
    description = models.CharField(max_length=200, null=True, blank=True)
    Recieved_sreferral  = models.CharField(max_length=200, null=True, blank=True)
    referral_status = models.BooleanField(null=True, blank=True)
    Bonus = models.FloatField(default=0)

serializer.py

class Bonusserializer(serializers.ModelSerializer):
    class Meta:
        model = Wallet
        fields = ['Bonus']

views.py

@api_view(['POST'])
def bonus_money(request, pk):
    if request.method == 'POST':
        qs = Wallet.objects.get(pk=pk)
        serializer = Bonusserializer(qs, data=request.data)
        if serializer.is_valid(raise_exception=True):
            Bonus = request.data['Bonus']
            li = ['5 Rs. Entry ticket','Get Another Spin','50 Rs Bonus', '10% Discount Coupon','20% Extra Referral Bonus','5 Rs Bonus','Better luck next time','10 Rs Bonus']
            x = random.choice(li)            
            if x == li[0]:
                qs.Bonus = qs.Bonus + 5
                qs.save()
            elif x == li[1]:
                y = 'Get Another Spin'
                return y
            elif x == li[2]:
                qs.Bonus = qs.Bonus + 50
                qs.save()
            elif x == li[3]:
                y = "10% Discount Coupon"
                return y
            elif x == li[4]:
                y = "Better luck next time"
                return y
            elif x == li[5]:
                qs.Bonus = qs.Bonus + 5
                qs.save()
            elif x == li[6]:
                y = "Better luck next time"
                return y
            elif x == li[7]:
                qs.Bonus = qs.Bonus + 10
                qs.save()
            obj = Wallet.objects.create(wallet=qs,Bonus = qs.Bonus)
            obj.save()
        json_data = serializer.data
        x = GetResponceSerializer(json_data)
        x = {**x.data, **json_data}
        return JsonResponse(x, status=status.HTTP_200_OK, safe=False)
    else:
        return JsonResponse({"status": False, "message": "Something went wrong. Please try again later", },
                            status=status.HTTP_400_BAD_REQUEST)    

Пожалуйста, игнорируйте строки переменной y. Позже я изменю их на результаты типа floatfield.

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