首页 > 解决方案 > 如何将此数据存储到 django 会话中

问题描述

所以我有这段代码将最喜欢的属性存储到数据库中,我怎样才能将属性存储到会话中而不是使用数据库

此视图的 json 数据来自一个 javascript,当单击(添加)按钮时,该 javascript 将数据发送到视图 views.py

def updateFavoritos(request):
    response_json = request.body
    inmuebleId = None
    if response_json:
        data = json.loads(request.body)
        inmuebleId = data['id']
        inmueble = Inmueble.objects.get(id=int(inmuebleId))
        favorites, created = Favorito.objects.get_or_create(inmueble=inmueble)
        print('respuesta')
    favs = Favorito.objects.all() 
    contexto = {
    'id':inmuebleId,
    'favoritos':favs,
     }
  
    return render(request, 'favorites.html', contexto)

显示最喜欢的属性的 html 代码

{% for favorito in favoritos %}
    <div class="col-lg-6 col-xl-4">
      <div class="feat_property">
            <div class="thumb">
            <img class="img-whp" src="{{ favorito.inmueble.imagen.url }}" alt="fl1.jpg">
            
            <div class="thmb_cntnt2">
                <ul class="listing_gallery mb0">
                <li class="list-inline-item"><a class="text-white" href="#"><span class="flaticon-photo-camera mr5"></span> 22</a></li>
                <li class="list-inline-item"><a class="text-white" href="#"><span class="flaticon-play-button mr5"></span> 3</a></li>
                </ul>
            </div>
            </div>
            <div class="details">
            <div class="tc_content">
                <h4><a href="page-listing-single-v8.html">{{ favorito.inmueble.nombre }}</a></h4>
                <p>251 SW 6th Ln Florida City, FL</p>
                <ul class="prop_details mb0">
                <li class="list-inline-item"><a href="#"><span class="flaticon-bed"></span> <br>4 Cuartos</a></li>
                <li class="list-inline-item"><a href="#"><span class="flaticon-bath"></span> <br>5 Baños</a></li>
                <li class="list-inline-item"><a href="#"><span class="flaticon-car"></span> <br>1 Garage</a></li>
                <li class="list-inline-item"><a href="#"><span class="flaticon-ruler"></span> <br>1200 M2</a></li>
                </ul>
            </div>
            <div class="fp_footer">
                <ul class="fp_meta float-left mb0">
                <li class="list-inline-item">
                    <a href="#">
                    <small><del class="body-color">$2,800/mo</del></small><br>
                    <span class="heading-color fw600">$2,300/mo</span>
                    </a>
                </li>
                </ul>
                <ul class="fp_meta float-right mb0">
                <li class="list-inline-item"><a class="icon" href="#"><span class="flaticon-resize"></span></a></li>
                <li class="list-inline-item"><a class="icon" href="#"><span class="flaticon-add"></span></a></li>
                <li class="list-inline-item">
                  <a href="{% url 'eliminar' favorito.id %}"><button class="btn btn-outline-danger">Borrar</button></a>
                </li>
                </ul>
            </div>
        </div>
      </div>
    </div>
    {% endfor %}

标签: pythonhtmldjango

解决方案


这是您可以使用 Django 视图在会话中设置变量的方法:

视图.py

def page_1(request):
    favs = Favorito.objects.all()
    request.session['favs'] = favs


def page_2(request):
    favs = request.session.get('favs')
    # Use favs here as you want

推荐阅读