Reiku
@Reiku (Rei k)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

djangoのhtml内の変数をviews.pyに引き渡したい

解決したいこと

djangoでフィルタ機能を作るために下記のコードを記述したのですが、
htmlで使用している変数をviews.pyの bbb という変数に代入したいのですが
どのようにすればよろしいでしょうか。

views.py
from django.shortcuts import render

from shop.models import Product, Detail

from django.core.paginator import Paginator, EmptyPage, InvalidPage

from django.db.models import Q


def Detail_detail(request, detail_slug):
    try:
        product = Detail.objects.get(slug=detail_slug)
    except Exception as e:
        raise e

    bbb = request.GET.get('bbb', '')

    aaa = "subtag__name__contains"
    detail = Detail.objects.filter(**{aaa : bbb})
    
    data = {'product': product,
            'detail': detail,
    }
        
    return render(request, 'shop/product_detail.html', data)

0

2Answer

試みたことがないのですが、パッと思いつくレベルで提案するなら、beautifulsoupというライブラリで強引にHTMLを取得し、特定のキーワードなどから変数の中身に当たる部分を拾うくらいしか思いつきませんでした。
ちなみに、htmlで使用している変数というのはタグで指定しているものでしょうか、それともHTMLといいつつJavascriptで定義した変数でしょうか。もとになるHTMLも記載があると、他の人の回答を引き出せるかもしれません…

0Like

HTMLで使用している変数というのは、どういう意味でしょうか?
何をやりたいとのか、いまいち掴めず、関係する部分の記載(テンプレートとか?)もあれば、お力になれるかもしれません。

質問文のコード見る限りでは、URLパラメータ (例:http://example.com/index?bbb=1の「bbb=1」の部分)で指定したパラメータを取得して、Detail_detail メソッド内でbbbという変数に代入してますが、やりたいこととあってますか?
外部から指定したbbbの値でフィルターをかけること自体はできそうですが

0Like

Your answer might help someone💌