首页 > 解决方案 > 单击按钮时Django更改对象详细信息

问题描述

晚上好!我想做两个按钮,当单击一个按钮时会自动更改该对象的详细信息。我已经设置为查看两个模型,但我不知道如何仅管理更改一个帖子。我应该使用模板标签还是尝试使用JS(坦率地说我不知道​​如何使用)感谢您的回复!

视图.py

class PostList(ListView):
    template_name = 'post/index.html'
    ordering = ['-date']
    queryset = EveryPostPl.objects.all()

    def get_context_data(self, **kwargs):
        context = super(PostList, self).get_context_data(**kwargs)
        context['EveryPostRu'] = EveryPostRu.objects.all()
        context['EveryPostPl'] = self.queryset
        return context

html

{% extends "post/base.html" %}
{% block title %}
    <title>Home Page</title>
{% endblock title %}
{% block content %}
    {% for obj in EveryPostPl %}
        <div class="card text-center">
            <div class="card-header">
                <ul class="nav nav-tabs card-header-tabs">
                <li class="nav-item">
                    <a class="nav-link nav-main" href="#">PL</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link nav-main" href="#">RU</a>
                </li>
                </ul>
            </div>
            <div class="card-body">
                <h5 class="card-title"><a href="{% url 'detailpost' obj.pk %}">{{ obj.title }}</a></h5>
                <p class="card-text">{{ obj.text|truncatechars:350 }}</p>
                <a href="{% url 'detailpost' obj.pk %}" class="btn btn-dark float-right">Zobacz</a>
            </div>
            <div class="card-footer text-muted">
                <span class="float-left">{{ obj.date|date:"d M y" }}</span>
                <span class="float-right">Przesłane przez: {{ obj.User }}</span>
            </div>
        </div>
    {% endfor %}
{% endblock content %}

在此处输入图像描述

标签: pythonhtmldjango

解决方案


如果您不介意将所有详细信息发送给客户端,这将起作用:

<html>
    <head>
        <title>JS Test</title>
        <script>
            function switch_to(elem_id) {
                var content_divs = document.getElementsByClassName("content");
                for(var i = 0; i < content_divs.length; i++){
                    content_divs[i].style.display = "none";
                }

                var elem = document.getElementById(elem_id);
                elem.style.display = "block";
            }
        </script>
    </head>
    <body>
        <a href="javascript:switch_to('RU')">RU</a>
        <a href="javascript:switch_to('PL')">PL</a>
        <div id="RU" class="content">
            Some text about RU...
        </div>
        <div id="PL" class="content" style="display:none">
            Some text about PL
        </div>
    </body>
</html>

(无论出于何种原因,它都不会作为代码片段运行......)


推荐阅读