单视图中的Django Crud操作

时间:2016-03-12 20:04:43

标签: django django-models django-forms django-templates django-views

我的在线营销部门跟踪数千行电子邮件和分析营销数据,我正在构建一个工具,我们可以在内部使用它来管理数据,以便我们可以运行多个查询来生成报告。

CRUD操作正常运行,但要输入的数据太多,使用ticket_form.html,ticket_list.html和ticket_confirm_delete.html视图和模板效率很低。我的列表数据是表格式的,所以我想要的是在单个视图下组合操作,这样我就可以在表格的末尾添加一个列,用于添加,更新和删除行的图标。谢谢你的帮助。

我目前的观点,我想结合起来:

x

1 个答案:

答案 0 :(得分:0)

使用以下代码作为参考

class TrafficForm(ModelForm):
  def get_absolute_url(self):
     #return edit url

  def get_delete_url(self):
     #return delete url

查看功能

 def crud_traffic_view(request, template_name= "crud_traffic.html"):
    all_objects = Traffic.objects.all()
    form = TrafficForm()
    context_dict = {"form" : form, "all_objects" : all_objects}
    return render(request, template_name, {'all_objects' : all_objects})

模板

 <table>
  {% for traffic in all_objects %}
    <tr>
    <td>{{traffic.details}}  </td>
    <td><a href="{{traffic.get_absolute_url}}">Edit</a></td>
    <td><a href="{{traffic.get_delete_url}}"> Delete</a></td>
    </tr>
  {% endfor %}
 </table>
 <form action="{% url 'add_traffic' %}" method="POST">
    {% csrf %} {{form}}
    ...
 </form>

这样您就可以从一个页面管理所有内容(仅转到另一个页面进行编辑/删除确认)。

如果您希望更快地使用模板,可以添加ajax调用来更新模板。