【问题标题】:Django How to send data from view to templateDjango如何将数据从视图发送到模板
【发布时间】:2018-12-10 08:32:41
【问题描述】:

模型.py

class Peer(models.Model):
    router = models.ForeignKey(Router, on_delete=models.CASCADE)
    ipv4_address = models.CharField(max_length=250)
    remote_as = models.CharField(max_length=250)

我在 Django 管理员更改表单中有一个自定义按钮

<input type="submit" value="Test Peer" name="_peer-test">

然后在admin.py中

def response_change(self, request, obj):
    if "_peer-test" in request.POST:
       self.message_user(request, "Peer Tested")
       url = request.POST.get('obj', '/peeringmanager/export')
       remote_as = obj.remote_as
       url += "?remote_as={}".format(remote_as)
       return HttpResponseRedirect(url)

所以我将数据(remote_as)从 obj 发送到另一个视图

views.py

def export(request):
    remote_as = request.GET.get('remote_as','')
    selected_peer = Peer.objects.filter(remote_as__exact=remote_as)
    template= loader.get_template('delete-peer.html')

    content= {
        'selected_peer':selected_peer,
    }
    return HttpResponse(template.render(content,request))

这里我想使用 remote_as 对象来获取与该 Remote_as 相关的表单中的所有对象并将其发送到 html。

删除-peer.html

{% block content %}
    {% for peer in content %}
        <p>{{ peer.remote_as }}</p>
    {% endfor %}

{% endblock %}

但我没有在 HTML 中得到任何数据。任何想法?更好的方法? 现在它导致一个空的html

【问题讨论】:

    标签: django django-models django-views django-admin


    【解决方案1】:

    模板不知道content var,你需要指定内容字典中列出的var:

    {
        'selected_peer': selected_peer,
    }
    

    selected_peet 代替 content

    {% block content %}
        {% for peer in selected_peer %}
            <p>{{ peer.remote_as }}</p>
        {% endfor %}
    {% endblock %}
    

    【讨论】:

    • 谢谢!好答案
    猜你喜欢
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 2012-09-24
    • 2013-06-22
    • 2012-06-08
    • 2018-03-18
    相关资源
    最近更新 更多