Django 里的表格内容做修改

当Django里表格内容需要做修改,可以这么操作。
先看效果图
请添加图片描述

修改后的表格
请添加图片描述


1. 先得在 asset_list.html 里修改。你们的html有可能跟我不一样

<table border="1px">
    <thead>
        <tr>
            <th>ID</th>
            <th>标题</th>
            <th>价格</th>
            <th>分类</th>
            <th>所属部门</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        {% for obj in queryset %}
        <tr>
            <td>{{ obj.id }}</td>
            <td>{{ obj.name }}</td>
            <td>{{ obj.price }}</td>
            <td>{{ obj.get_category_display }}</td>
            <td>{{ obj.depart.title }}</td>
            <td>
            	<!-- 添加这里 -->
                <a href="/asset/edit/?aid={{ obj.id }}">编辑</a>
                <a href="#">删除</a>
            </td>
        </tr>
        {% endfor %}
    </tbody>
</table>

2. 在 urls.py 文件里添加新的url

from django.contrib import admin
from django.urls import path
from apps.assetManagement import views as am_views

urlpatterns = [
    path('asset/list/', am_views.asset_list),
    path('asset/edit/', am_views.asset_edit),

]

3. 在 views.py 文件里修改

class AssetModelForm(forms.ModelForm):
    #newField = forms.CharField()
    class Meta:
        model = models.AssetSet 
        fields = ['name', 'price', 'category', 'depart']
        #fields = "__all__"

        """
        # 单一的给某个field添加样式
        widgets = {
            'category': forms.Select(attrs={'style': "width: 300px;"})
        }
        """

    # 给所有的 field 提供样式
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for name, field in self.fields.items():
            if name == "price":
                continue
            field.widget.attrs['style'] = "width: 100px"

def asset_edit(request):
    aid = request.GET.get('aid')
    asset_object = models.AssetSet.objects.filter(id=aid).first()
    if request.method == 'GET':
        form = AssetModelForm(instance=asset_object)  # instance的作用是显示默认值
        return render(request, 'asset_edit.html', {'form': form})
    
    form = AssetModelForm(data = request.POST, instance=asset_object)
    if form.is_valid:
        form.save()
        return redirect('/asset/list/')
    else:
        return render(request, 'asset_edit.html', {'form': form})

做了上面的三步之后,就可以实现修改了。


点个赞呗~

相关推荐

  1. Django 获取url参数

    2024-06-08 09:10:04       28 阅读
  2. Django app概念

    2024-06-08 09:10:04       33 阅读
  3. Django模板变量

    2024-06-08 09:10:04       27 阅读
  4. django 需要修改文件

    2024-06-08 09:10:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 09:10:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 09:10:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 09:10:04       82 阅读
  4. Python语言-面向对象

    2024-06-08 09:10:04       91 阅读

热门阅读

  1. python安装Django

    2024-06-08 09:10:04       29 阅读
  2. 设计模式-责任链模式

    2024-06-08 09:10:04       26 阅读
  3. react组件中的this

    2024-06-08 09:10:04       30 阅读
  4. 换热器设计参数的选用

    2024-06-08 09:10:04       30 阅读
  5. Stream对List进行排序

    2024-06-08 09:10:04       23 阅读
  6. k8s自动补全命令

    2024-06-08 09:10:04       26 阅读
  7. excel vlookup

    2024-06-08 09:10:04       27 阅读
  8. 清除Ubuntu系统中的无法启动的Ubuntu 24实例

    2024-06-08 09:10:04       26 阅读
  9. 微信小程序使用bindtap事件data-xxx传值无法获取

    2024-06-08 09:10:04       29 阅读
  10. 如何配置Feign以实现服务调试

    2024-06-08 09:10:04       26 阅读
  11. JVM调优

    2024-06-08 09:10:04       28 阅读
  12. Xubuntu-修改系统默认分辨率和改变系统的熵

    2024-06-08 09:10:04       29 阅读