前言:
现时小伙伴们对“如何美化html里的form表单”大约比较讲究,同学们都想要了解一些“如何美化html里的form表单”的相关知识。那么小编同时在网摘上收集了一些关于“如何美化html里的form表单””的相关知识,希望你们能喜欢,大家一起来学习一下吧!已经实现了点餐数据的创建和删除,这里将继续实现点餐数据的编辑功能,当然根据需求登录者只能编辑自己提交的点餐数据。
首先将 templates/order/createorder.html 修改成 create.html,其它的内容不变。
在 orders/views.py 中增加 EditOrder 函数,实现具体的编辑功能:
def EditOrder(request,order_id): ticket = request.COOKIES.get('ticket') if not ticket: return HttpResponseRedirect('/users/login/') user = User.objects.filter(ticket=ticket) if not user: return HttpResponseRedirect('/users/login/') if request.method == 'POST': # 创建 OrderForm 的实例 form = OrderForm(request.POST) # check whether it's valid: if form.is_valid(): # 获取用户输入 username = form.cleaned_data['username'] createdate = form.cleaned_data['createdate'] dish = form.cleaned_data['dish'] quantity = form.cleaned_data['quantity'] spicy = form.cleaned_data['spicy'] dinnertime = form.cleaned_data['dinnertime'] order = Order.objects.filter(id=order_id).first() order.username = username order.dish = dish order.quantity = quantity order.spicy = spicy order.dinnertime = dinnertime order.save() return HttpResponseRedirect('/orders/') else: error_msg = form.errors.as_data() render(request, 'orders/createorder.html', {'obj': form,'errors': error_msg,}) if request.method == 'GET': # 根据 order_id 获取 order 数据 order = Order.objects.filter(id=order_id).first() username = order.username createdate = order.createdate dish = order.dish quantity = order.quantity spicy = order.spicy dinnertime = order.dinnertime form = OrderForm(initial={"username": username, 'createdate':datetime.now().strftime('%Y-%m-%d'), 'dish':dish, 'quantity':quantity, 'spicy':spicy, 'dinnertime':dinnertime},) return render(request, 'orders/create.html', {'obj': form, 'username':username })
在 orders/index.html 中进行判断,如果是登录者创建的数据,则增加“编辑”链接:
{% for order in orders %} <tr> <td>{{ order.id }}</td> <td>{{ order.username }}</td> <td>{{ order.createdate|date:'Y-m-d' }}</td> <td>{{ order.dish }}</td> <td>{{ order.dish.restaurant }}</td> <td>{{ order.quantity }}</td> <td>{{ order.get_spicy_display }}</td> <td>{{ order.get_dinnertime_display }}</td> <!--显示中餐/午餐的value--> <td> {% if order.username == username %} <a href="{% url 'orders:edit' order.id %}">编辑</a> <a href="{% url 'orders:delete' order.id %}">删除</a> {% endif %} </td> </tr> {% endfor %}
在 order/urls.py 中增加 edit 的子路由:
from django.urls import pathfrom . import viewsapp_name = 'orders'urlpatterns = [ # orders 的首页 path('', views.order, name='index'), path('create/', views.CreateOrder, name='create'), path('edit<int:order_id>/', views.EditOrder, name='edit'), path('delete<int:order_id>/', views.DeleteOrder, name='delete'),]
在浏览器中输入: ,可以看到如下页面:
点击“编辑”,按钮,可以看到如下界面:
建议按照 项目实战Django Web开发-16-目录结构 的顺序进行学习 iorder 项目的开发过程。
源代码在 github 中:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #如何美化html里的form表单