django - 为模态表单调整现有的 django 站点
问题描述
我有一个使用 url 向数据库添加/编辑/查看记录的站点。这些将信息传递到另一个模板以进行数据输入。我现在正在研究模态表单——目前我们使用的是 css,而不是 Django 模态表单。
我的问题是基本的,是否可以保留 url 和模板但将它们嵌入模式中?通过这种方式,我们可以保留相同的代码并迁移到模态,而无需重新编码视图。
我正在为此寻找一个清晰简单的文档 - 所以请给我发送任何好的链接。
对于一个基本示例(我们有更复杂的视图):
模板存储
{% extends 'storage/base.html' %}
{% load staticfiles %}
{% load widget_tweaks %}
{% block content%}
{% include "mainheader.html" %}
{% include "storage/submenu.html" %}
<div class="container top">
<div class="row">
{% for storage in storage.all %}
<a class="text-light" href="{% url 'depot:detailstorage' storage.store_id %}">
<div class="col-md-4">
<div class="card text-white bg-dark mb-3" style="max-width: 18rem;">
<!--div class="card-header">{{ storage.store_name }}</div-->
<div class="card-body" style="">
<h5 class="card-title text-center">{{ storage.store_name }}</h5>
<img class="card-img-top p-3" src="{{ storage.icon_desc.icon.url }}" /></a>
<p class="card-text" style = "font-size:0.7em;">{{ storage.address_1 }} {{ storage.address_2 }} {{ storage.city }} {{ storage.region }} {{ storage.zip }} {{ storage.country }}</p>
</div>
</div>
</div>
</a>
{% endfor %}
</div>
</div>
{% endblock %}
模板创建存储
{% extends 'storage/base.html' %}
{% load widget_tweaks %}
{% block content %}
{% include "mainheader.html" %}
{% include "storage/submenu.html" %}
<div class="container top">
<h4 class="kap">Storage</h4>
<div class="col-sm-3">
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-dark mt-3t">Save</button>
</form>
</div>
</div>
{% endblock %}
视图存储
def allstorage(request):
allstorage = Storage.objects.all()
return render(request, 'storage/allstorage.html',
{
'storage':allstorage
})
创建存储
def createstorage(request):
if request.method == "POST":
form = StorageForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.created_by = request.user
# post.modified_by = request.user
# post.datetime = datetime.datetime.now()
post.save()
return redirect('depot:allstorage')
else:
form = StorageForm()
return render(request, 'storage/create_storage.html', {'form': form})
网址
re_path(r'^storage/$', allstorage, name='allstorage'),
url(r'^storage/createstorage/$', createstorage, name='createstorage'),
(是的,我们还需要将所有 url 更新为 path/re_path)
解决方案
推荐阅读
- python - 更快地读取位置数据
- php - 多选值仅打印第一个字符
- java - JNA toArray() 重置结构字段?
- azure - 此位置不应使用模板函数“reference”
- python - 当 Y 包含负值和正值时,Plotly/Dash 在条形图中留下无法解释的间隙
- android - 虚拟机关闭所有超时 - 致命例外:主要
- java - 如何避免使用 MyBatis 和 Immutable POJO 导致的“从不分配私有字段”?
- asp.net-core - Asp.net Core JWT 授权当角色基于某些东西时
- javascript - 将点击的对象绑定到回调
- python - 如何暂停和取消暂停海龟程序 - python