私はdjangoから始めたばかりです(正直に言うと、Pythonも)
現在の URL から self.slug を切り取ってテンプレートに返すモデル メソッドを取得しようとしています。
これは私が試した方法です:
class Category(models.Model):
...
def remove_filter(self):
url = HttpRequest.get_full_path()
slug = '/' + self.slug
return url.replace(slug, '')
しかし、ご想像のとおり、うまくいきません。
テンプレートのスニペット:
{% for object in active_filters %}
<li><a href="{{ object.remove_filter }}"><i class="icon-remove"></i></a>{{ object }}</li>
{% endfor %}
ここでの私の主な目標は、現在のオブジェクトのスラッグを削除して URL を変更したフロントエンド アイコンを作成することです。
ビューを介してそれを行う方法はわかりませんが、どんな提案も受け付けています。
def category_page(request, url):
slugs = url.split('/')
active = Category.objects.filter(slug__in=slugs)
sorted_slugs = []
for i in active:
sorted_slugs.append(i.slug)
if slugs != sorted_slugs:
url = '/'.join(sorted_slugs)
return redirect('http://127.0.0.1:8000/catalog/' + url)
inactive = Category.objects.exclude(slug__in=slugs)
return render(request, 'category.html', {'active_filters': active,
'inactive_filters': inactive})
ありがとう。