Джанго - Slugify get lookup - PullRequest
       1

Джанго - Slugify get lookup

3 голосов
/ 19 апреля 2011

Если у меня был объект с именем Object 1, и я хотел get() этот объект, но я пытался получить его с залитым именем object-1, есть ли способ сделать это? Что-то вроде:

Model.objects.get(name__slugify = slugifiedname)

Я хочу по возможности избегать добавления дополнительного поля слагов в мою модель.

Ответы [ 2 ]

5 голосов
/ 19 апреля 2011

Вам нужно наложить некоторые ограничения на значение поля 'name', разрешив только [-A-Za-z] +, но вы можете сделать:

def my_request(request, name):
    un_slugified_name = name.replace('-', '')
    objects = MyModel.objects.get(name=unslugified_name)

Однако имя, которое вы передаете через строку запроса, должно быть именно тем, что находится в базе данных. YMMV. Мой совет, используйте SlugField:)

2 голосов
/ 19 апреля 2011

Slugify - это функция Python. Чтобы достичь вашей цели, Django должен будет извлечь всю базу данных (по крайней мере, с полем pk и name), вычислить слаг для каждой строки и сравнить его с заданным параметром. И это было бы очень несовершенно, так что:

TLDR: нет

...