У меня есть модель PageДжанго поиск Страницы с завершающим слэшем и без
class Page(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=128)
url = models.URLField()
views = models.IntegerField(default=0)
При добавлении новой страницы через форму Я хочу, чтобы убедиться, что я не добавляю уже добавила страницы.
Так что я это сделать, как этот
*******
if Page.objects.filter(url=link)
*******
Но есть проблема. Иногда экземпляр страницы имеет URL-адрес с завершающим косой чертой, а иногда и нет. Такая же ситуация с данной ссылкой.
Ситуации
link = http://newsru.com
url = http://newsru.com/
я мог бы использовать здесь url__startswith
, но он обнаружит все страницы с newsru.com/page1
, newsru.com/page2
и так далее.
url_contains
не поможет
я мог бы использовать что-то вроде этого
if Page.objects.filter(url=link.strip('/')
Но URL может быть с косой чертой в конце.
Что такое правильный поиск этой ситуации?
Почему вы не проверяете URL-адреса на пути, так что все они последовательны? –
Вы хотите проверить URL-адрес в 'save()' method или какой-нибудь валидатор? – GriMel
В методе проверки; предположительно, они вводятся через какую-то форму, вы должны написать метод 'clean_url()', чтобы гарантировать, что значение всегда заканчивается косой чертой. –