我需要制作一个小应用程序,其中只使用了django-admin。
所以我有一个带有一个表的模型,它有一个列,比方说表叫做项目,列名是“name”。
我希望每行代替一个字段 - 一个文本字段。此文本字段的每一行都将作为新行添加到表“items”。
编辑:将文件上传字段也很好...然后手动解析数据
我甚至无法想象从哪里开始。
答案 0 :(得分:1)
这是一个非常令人困惑的问题。
您有一个名为Items
的表。表Items
中的一列是名为Name
的文本字段。文本域Name
中的每一行都将添加到与新数据库行相同的表中。
如果需要将文本字段分成单独的数据库行,为什么在文本域name
中有多行?
一个想法是设置一个ModelAdmin,覆盖save_model,你劫持对象,永远不保存它,并在迭代文本字段时手动创建“Items”。
class ItemsAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
data = obj.name
items = [x for x in data.split('\n') if x and not x.isspace()]
for item in items:
Items.objects.create(name=item)
有一个文件字段:models.FileField()
但是对于这个,你应该只设置一个网址&查看:“/ upload-file /”,否则您的数据库中的每一行都会有一个空白的FileField。
如果您真的想要使用管理员应用,请覆盖add_view模板并输入您自己的上传表单并单独处理该文件
<input type="file" name="myfile"> + in django view request.FILES['myfile']