Я хочу сохранить несколько шаблонов URL в моей модели django, которые пользователь может предоставить параметры, для которых будет создан URL.
Например, я мог бы сохранить эти 3 URL в моей базе данных, где% s - это переменный параметр, предоставленный пользователем:
- www.thisissomewebsite.com? Пары =% s
- www.anotherurl /% s /
- www.lastexample.co.uk? Param1 =% s & fixedparam = 2
Как видно из этих примеров, параметр может появляться в любом месте строки, а не в фиксированной позиции.
У меня есть 2 модели, одна содержит URL-адреса, а другая - переменные:
class URLPatterns(models.Model):
pattern = models.CharField(max_length=255)
class URLVariables(models.Model):
pattern = models.ForeignKey(URLPatterns)
param = models.CharField(max_length=255)
Как лучше всего создать эти URL-адреса, заменив% s на переменную в базе данных.
это будет просто замена строки, например:
urlvariable = URLVariable.objects.get(pk=1)
pattern = url.pattern
url = pattern.replace("%s", urlvariable.param)
или есть лучший способ?
EDIT
Также было бы неплохо, если бы пользователь мог сохранить одну переменную или список переменных, которые затем заменили бы число переменных в строке, например
u = URLPatterns(pattern='www.url?param=%s¶m2=%s¶m3=%s')
v = URLVariables(pattern=u, param='[2,6,3]')
url = SOME WAY TO REPLACE THE 3 %s WITH THE 3 VARIABLES IN THE ARRAY (this would need to be converted from a string in someway)
Спасибо