求 Django 框架的解决方案。

2018-03-21 18:07:21 +08:00
 brucecobb
目前有的需求:
1.要求使用 django 框架,管理数据库某些(一部分静态资源链接等)已经存在的表的数据。
2.能对数据进行增删改查。
3.图片链接要能显示图片。
4.随着公司数据量的增大,可能能随时增加新的数据表进行管理。

目前的思路:
1.使用 inspectdb 命令反映射出需要管理的数据表,并添加到模型类
2.使用 django 自带的后台管理系统 admin 进行数据管理。

目前遇到的困难:
1. inspectdb 是全部映射处理,因为大部分表是不需要管理爹,所以需要把管理的表手动添加到模型类,如果随着管理表的增多,怎么动态增加模型类?
2.在 django 中数据表的模型类的数量是固定的,如果有一张表不需要管理了,怎样才能动态的删除这个模型类?
3.还有没有别的思路?因为目前选择 django 是因为有 admin 这个后台管理的优点,如果有别的解决方案,很乐意聆听。
2969 次点击
所在节点    Python
11 条回复
slate
2018-03-21 18:58:59 +08:00
个人感觉 inspectdb,所有映射都到 model 没什么影响性能的,新增或者删除表时,重新 inspeectdb 到另一个文件,两个文件一对比 diff 一下,该删的删该加的加
brucecobb
2018-03-21 19:13:23 +08:00
@slate 感谢你的回复,但是重新 inspectdb 后需要重新 migrate,项目在运行的时候好像是办不到的。
xpresslink
2018-03-21 19:19:51 +08:00
@brucecobb
不用,只要指定 table_name, 然后在 content_type 表里自己插个记录。
ZeroW
2018-03-21 19:24:24 +08:00
逆向生成的 model 文件里面会默认添加一个 manage 属性,而且是 false。你不改的话生成的 model 是不会对数据库进行修改操作的,即使你 migrate 也不会产生新表。如果要用 django 操作表,把 manager 改成 true 或删掉都可以。
brucecobb
2018-03-21 19:30:22 +08:00
@zerowang317 你好,感谢你的回复,我刚刚试了一下 python manage.py inspectdb,并没有看见 manger 属性。
brucecobb
2018-03-21 19:34:00 +08:00
@xpresslink 你好,感谢你的回复,我还是不明白 diff 是在干什么,是 git 中的 diff 吗?而且在项目运行的过程中能修改代码吗?
so1n
2018-03-21 20:53:03 +08:00
有个 xadmin 更强大。。
ksupertu
2018-03-21 21:38:45 +08:00
inspect db 出来的那个文件下面有个

class meta:
Manage=False
大概是这个,爪机无力,明天在给你补充下;这个意思就是让 django 不管理这张表,migrate 的时候不做任何操作,可以听楼上的用 xadmin,更漂亮点还带导入导出功能,djangosuite 长期没人维护的感觉,不想后台出现这张表的话,admin.py 里不做 site.regesiter 你就看不到了
brucecobb
2018-03-21 23:07:30 +08:00
@ksupertu 非常感谢你的回复,明天我再试试,期待你的补充!
xpresslink
2018-03-22 00:02:16 +08:00
@brucecobb 有 个标准库叫 difflib 可以比较字符串或文本文件。

>>> import difflib
>>> dif=difflib.Differ()
>>> list(dif.compare('abc', 'abbc'))
[' a', ' b', '+ b', ' c']
>>>
awli
2018-03-22 14:12:16 +08:00
您好, 怎么根据表内的图片链接显示多张图片,并且可以显示缩略图呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/440141

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX