我正在构建一个应用程序,假定其工作流程存在某些组和权限.例如,"成员"可以登录应用程序并查看和编辑他们的个人数据,但无法看到通常会在同一屏幕上显示的注释."员工"可以查看这些笔记并创建或编辑自己的笔记,但只有"会员管理员"才能删除或编辑任何人的笔记.
我的问题是引导这个应用程序的数据.我可以为组创建JSON fixture数据,但是我必须对PK进行硬编码,这看起来像是不好的做法(如果我想使用的第三方应用程序做同样的事情并且存在冲突会怎样?)更大问题是权限 - 我必须将PK添加到权限,而权限反过来又会有PK到他们的内容类型.
我已经读过使用post_syncdb钩子以更加编程的方式添加初始数据,我希望这将有助于我解决硬编码的PK问题.但我想知道这是否是这个问题的最佳解决方案,或者我是否"滥用"Django组和权限概念,在这里,应该做其他事情,比如创建新模型或只是放置标志(如" is_member_manager")在我的用户个人资料模型等.
我需要为杂货店建立一个内部订单输入和跟踪系统,这需要现有电子商务系统的许多功能,例如产品目录,customer_to_order关系/视图,移动报告,订单状态等.但是,第一个该产品的阶段纯粹是内部的,因此我不需要任何在线电子商务功能,如送货地址,邮政费率或支付网关.我还有一些业务特定的东西,可能不适用于很多在线商店:复杂的产品/客户折扣系统,产品的许多属性,生产者订单跟踪流程(客户订单与我们和生产者订购了,等等.
所以我想知道我是否会更好地定制现有产品,或者用一个好的Web框架(例如Python/web2py)来推销自己的产品?如果它是一个干燥的网上商店,那么决定将是明确的 - 但事实并非如此.因此,我正在努力寻找最具扩展性/灵活性的FOSS电子商务软件进行原型设计.
到目前为止,我一直在考虑的主要竞争者是:Drupal/Ubercart,Django/Satchmo和RoR/Spree.Ubercart正在进行一次完整的重写,如Drupal Commerce,所以这让我失望.Spree项目看起来很干净,我喜欢这些想法 - 但我已经在Jython中编写产品/客户ETL并且不想平衡这两种语言 - Python和Ruby对我来说都是新手.
我不喜欢Magento的企业/社区版模型.我听到很多关于osCommerce及其变种的抱怨.
提前感谢您的想法.
顺便说一句,我认为我需要的功能集与我现有的电子商务产品开箱即用的功能之间的差距大约为30%.
我有一些非常冗长的任务函数,我想从我的tasks.py模块中突破,但仍然可以调用from myapp.tasks import my_task.我尝试为每个任务创建子模块,但后来我必须插入一些技巧tasks/__init__.py,这看起来非常hackish(并且需要赋予任务与模块相同的名称):
import pkgutil
for module_loader, name, ispkg in pkgutil.iter_modules(__path__):
__import__('myapp.tasks.%s' % name)
locals().update({name: getattr(locals()[name], name)})
Run Code Online (Sandbox Code Playgroud) 我经常看到line_item表用于从其他表中复制一个或多个字段的订单或发票,以便在放置客户的产品订单时拍摄快照.
但是,在我的架构中,我可以生成订单视图而无需复制数据.因此,查询订单/产品/价格数据要贵一些,但我在复制/插入时节省了时间,空间和冗余.我理解复制/插入是一次性事务,而查找将需要多次 - 但是,我只处理给定表中的数十万条记录,我不希望性能是一个问题.
因此,因为a)我的模式支持准确的查找而没有快照,b)我不需要查找优化,我认为运行计算而不是快速计算是有意义的-射击.或者有什么我想念的东西,我应该总是在这样的情况下拍摄快照吗?
以下是查找计算的示例:
# display order items for a particular order on a particular date
# get order, products and base prices from order_id
order_products = SELECT * FROM order_has_product ohp
INNER JOIN price ON (price.product_id = ohp.product_id)
INNER JOIN order ON (order.id = ohp.order_id)
WHERE order_id = ?
# calculate price of each product at order.datetime_opened
for op in order_products:
tax = SELECT SUM(tax.rate) FROM product_has_tax pht
INNER JOIN tax ON (tax.id = pht.tax_id)
WHERE pht.product_id …Run Code Online (Sandbox Code Playgroud) django ×2
python ×2
e-commerce ×1
etl ×1
odbc ×1
permissions ×1
pyodbc ×1
pypyodbc ×1
satchmo ×1
schema ×1
snapshot ×1
spree ×1
usergroups ×1
web2py ×1