为了账号安全,请及时绑定邮箱和手机立即绑定

Django 后端循环到前端列表

Django 后端循环到前端列表

狐的传说 2023-05-16 09:47:48
很抱歉这个问题,但我是 Django 的初学者,我找不到任何像这种情况这样的话题。这是代码:views.pydef select_collections(request):    listacolecao = Collection.objects.order_by('upload_date')            listasubscription = Subscription.objects.filter(user=request.user)    for obj in listacolecao:                try:                    Subscription.objects.filter(user=request.user, collection=obj)                except Subscription.DoesNotExist:                    print('not exist')                else:                    print('Ok')它在终端打印这个结果:not existnot existOknot existOkOkOkOk我知道那不是列表,但我需要将其结果放入模板中。我怎样才能做到这一点?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

如果你只是想要你在那里拥有的相同但打印在你拥有的模板中,(以我的谦虚和初学者的观点)你需要稍微修改你的视图,创建一个你想要显示它的模板并将 url 修改为在该模板中加载视图,例如:


查看.py 变化:


def select_collections(request):

    listacolecao = Collection.objects.order_by('upload_date')

    listasubscription = Subscription.objects.filter(user=request.user)

    a_list = [] #You would get something like: ['not exist', 'not exist', 'Ok', 'not exist', 'Ok','Ok','Ok'] which is what it was printed in your code

    for obj in listacolecao:

                try:

                    Subscription.objects.filter(user=request.user, collection=obj)

                except Subscription.DoesNotExist:

                    #print('not exist') I would substitute it for .append, to add each value to the list as a new item

                    a_list.append('not exist')

                else:

                    #print('Ok')

                    a_list.append('Ok')

   

    

#Now you pass that variable and sending it to your template, so you can use it there.

    context = {

    'a_list':a_list, 

    }

    

    return render(request, 'your_template_name.html', context)

在你的 urls.py 中:


from .views import select_collections #Importing your recently created view


urlpatterns = [

   path = ('the_url_where_you_want_it', select_collections, name="the_name_you_prefer" ),

]

现在在您的模板中:


#As you have already sent those variables here you can use Django's template tags


{% for each_obj in a_list %}

    <h3> {{each_obj }} </h3> #If you change each_obj for a_list, you would get a QuerySet (fancy word for a list), with all the items in the "a_list" variable.

{% endfor %}


这应该允许您在模板中单独查看列表中的每个项目。


查看完整回答
反对 回复 2023-05-16
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信