experimentiere grade ein wenig mit django und steh vor nem Problem. Ich möchte eine Art Shortlink-Application erstellen. Dazu muss ich überprüfen, ob in der Datenbank ein Eintrag mit der gleichen Shortlink-ID (Aus Ziffern, Klein- und Großbuchstaben, 4 Zeichen lang) exisitert und dann ggf einen neuen generieren.
Nur tut das alles nicht so wie ich will
Code: Alles auswählen
from django.db import models
from django.contrib import admin
import random
TYPES = [map(chr, range(97, 123)), map(chr, range(65, 91)), map(int, range(0, 10))]
# Klein- und Grossbuchstaben sowie Ziffern mappen
class ShortLink():
link = ""
while True:
for i in range(4):
type = random.randint(0, 2)
n = random.randint(0, len(TYPES[type])-1)
link += str(TYPES[type][n])
# Pruefsumme erzeugen
try:
self.get(link=link)
# gibts ihn schon?
except:
break
# wenn nein, brich ab
def __str__(self):
return "<ShortLink %s" % self.link
class Link(models.Model):
url = models.URLField('Adresse')
date = models.DateTimeField(auto_now=True)
link = ShortLink()
def __str__(self):
return "Link nach %s (%s)" % (self.url, self.link)
class Meta:
ordering = ['-date']
verbose_name = "Link"
verbose_name_plural = "Links"
admin.site.register(Link)
Gruß & Danke