0

i'm trying to read the value of a url and add it to the models in django.

Basically if i have the following link

my_site.com/special_event/123

How would i be able to catch the last part of the link the (123) and save it as an entry for my models. For context i am trying to do a raffle on my website, and when someone scans a QR code it will send them to my site and the end of the link will be a random number that i will use to raffle. So in this case a person's raffle ticket would be 123.

So far i have this code: the model:

class RaffleEntry(models.Model):
entry_number = models.IntegerField(blank=False)

def __str__(self):
    return self.entry_number

And the view i tried doing it this way:

def add_entry(request, entry_number):
    entry_number = RaffleEntry.objects.create()
    return render(request, 'front/entry_success')

I also tried to add an INT parameter to the URL like this:

    path('special_events/add_entry/<int:entry_number>', views.add_entry, name='special_events/add_entry>'),

Any help or even just point me in the right direction would be greatly appreciated. Thank you.

BiswajitPaloi
  • 586
  • 4
  • 16
Rodrigo
  • 181
  • 11
  • If i understand your question correctly, this is a duplicate; See the answers in this post: [how to get everything after last slash in a url](https://stackoverflow.com/questions/7253803/how-to-get-everything-after-last-slash-in-a-url) – eDonkey Dec 20 '21 at 15:34
  • i believe so, i think i was looking at the issue the wrong way maybe. – Rodrigo Dec 20 '21 at 16:12
  • Does this answer your question? [How to get everything after last slash in a URL?](https://stackoverflow.com/questions/7253803/how-to-get-everything-after-last-slash-in-a-url) – eDonkey Dec 21 '21 at 06:49

2 Answers2

1
from random import randint
generated=[]

def generate_random_number(seed):
    random_number=(randint(0,seed))
    return str(random_number)


for i in range(0,10):
        random_number=generate_random_number(9999)
        if not random_number in generated:
        url="my_site.com/special_event/"+random_number
        url1=url
        url=(url.split("/"))
        print(url[len(url)-1], url1)
        generated.append(random_number)

print(generated)

4887 my_site.com/special_event/4887

682 my_site.com/special_event/682

3755 my_site.com/special_event/3755

7953 my_site.com/special_event/7953

8867 my_site.com/special_event/8867

5238 my_site.com/special_event/5238

9309 my_site.com/special_event/9309

2424 my_site.com/special_event/2424

3930 my_site.com/special_event/3930

8064 my_site.com/special_event/8064

['4887', '682', '3755', '7953', '8867', '5238', '9309', '2424', '3930', '8064']

structure
  • 35
  • 7
  • No everyone will have the same link, that is the issue. Each QR code has it's own variation of the link – Rodrigo Dec 20 '21 at 15:51
  • Not sure how everyone will have the same link if the last digits are generated randomly – structure Dec 20 '21 at 17:14
  • i meant not* everyone will have the same link, i generated a whole sheet of qr codes to distribute amongst guests, each qr code will link you to my_site.com/special_event/8064 or whatever number it was randombly generated. i need to get the last numbers and save them on the database so i can use those as a raffle ticket. – Rodrigo Dec 20 '21 at 18:20
0

So to do what i wanted i just had to change my Views.py, here's the code:

def add_entry(request, entry_number):
RaffleEntry.instance = RaffleEntry.objects.create(entry_number=entry_number)
return render(request, 'front/entry_success.html', {'entry_number': entry_number})

This solved it.

Rodrigo
  • 181
  • 11