django - django 表 2 - 删除继承表的列和 delete_item
问题描述
我想为我的所有表格列表(每个模型一个)和(一个 delete_item)函数提供一个抽象函数。
我不知道如何进行删除(此表中的列)并将模型传递给视图中的 delete_item 函数
表格.py
############ Abstract Table
class abs_Table(tables.Table):
SN = tables.Column(empty_values=(), orderable=False)
delete = tables.LinkColumn('delete_item', args=[A('pk'), ?????Model???], attrs={
'a': {'class': 'btn btn-small btn-dark'}
# })
def __init__(self, *args, **kwargs):
super(abs_Table, self).__init__(*args, **kwargs)
self.counter = itertools.count(1)
def render_SN(self, record):
pg = getattr(self, 'paginator', None)
if pg:
v = next(self.counter)
return v + self.paginator.per_page * (self.page.number-1)
else:
return next(self.counter)
class Meta:
model = None
fields = [ 'SN', 'id', 'delete', ]
attrs = {"class": "table-striped table-bordered", 'width': '100%'}
empty_text = "There are no Records matching the search criteria..."
然后对于模型表
表格.py
class ModelTable(abs_Table):
class Meta(abs_Table.Meta):
model = modelname
fields = abs_Table.Meta.fields+[selected_model_fields]
视图.py
def delete_item(request, pk, delmodel):
obj = get_object_or_404(delmodel, id=pk)
if request.method == "POST":
obj.delete()
return redirect("../")
else:
pass
context = {
'object': obj
}
return render(request, '/delete_confirmation.html', context)
解决方案
对于视图部分。在将模型作为字符串传递然后使用 apps.get_model 将其更改为模型后,它对我有用。
视图.py`
from django.apps import apps
def delete_item(request, pk, delmodel):
DeleteModel = apps.get_model("Myapp", delmodel)
obj = get_object_or_404(DeleteModel, id=pk)
if request.method == "POST":
obj.delete()
return redirect("../")
else:
pass
context = {
'object': obj
}
return render(request, '/delete_confirmation.html', context)
仍然没有正确处理确认,需要改进表中的删除列。
推荐阅读
- docker - NMAP 使用 Kubernetes/Docker 显示 GCP 中的所有过滤端口
- python - 比 pandas groupby 更有效的方法
- configuration - 向操作系统添加或删除一些功能?
- react-native - Netinfo 总是返回 true React Native
- spring-boot - Spring boot,多个@EventListener(ApplicationReadyEvent.class)时如何指定顺序
- python - 我试图删除列表中的标点符号,但它有问题 TypeError: 'float' object is not iterable
- apache-spark - 如何使用 Apache Spark 并行读写两个 DataFrame
- android - 如何在 Android 中处理 Print Job 事件?
- sql - SAS PROC SQL SELECT INTO 宏创建的动态范围
- excel - Power Query (M) _ 动态更新 List.Sum 函数的列列表