Django Carton是一个简单而轻量级的购物车和愿望清单应用程序。

django-carton-no-database的Python项目详细描述


Django纸箱
============= < BR>< BR>
+-----+
/|/|
+——+——————Django Carton是一个简单轻便的应用程序
用于购物车和心愿单。
+-+
|/|/
+-----+ < BR>< BR>< BR>
*简单:您决定如何实现视图、模板和付款
处理。
*轻量级:购物车位于会话中。
*只是一个容器:您可以按照自己的需要定义产品模型。 < BR>< BR>
使用示例
---- < BR> 视图/视图: < BR>
来自django.http导入httpresponse < BR>
来自carton.cart进口车
从products.models进口产品 < BR>
定义添加(请求):
cart=购物车(请求会话)
product=product.objects.get(id=request.get.get('product_id'))
购物车添加(product,price=product.price)
返回httpresponse("已添加") < BR>
定义显示(请求):
返回render(请求,"shopping/show cart.html") < BR>< BR>
我们假设您的产品是在应用程序中定义的
称为"产品"。 < BR>
模板: < BR>
{%load carton_tags%}
{%get_cart as cart%} < BR>
{%用于cart.items%}中的项目
{{item.product.name}
{{item.quantity}
{{item.subtotal}
{%endfor%} < BR>
您还可以使用这个方便的快捷方式:
{%用于cart.products%}
{{product.name}
{%endfor%} < BR>
在模板中,您可以使用{{product.id}访问产品id。 < BR>
设置: < BR>
cart_product_model='产品.型号.产品' < BR>< BR>
此项目附带了一个名为"shopping"的应用程序示例``
实现基本的添加、删除和显示功能。
要使用它,您需要安装"shopping"应用程序,然后
在项目中包含url``urls.py`` < BR>
设置.py
已安装的应用程序=(
"纸箱",
"购物",
"产品", < BR>< BR>
网址.py
urlpatterns=模式('',
url(r'^shopping cart/',include('shopping.url'), < BR>< BR>< BR>
假设您定义了一些产品,您应该能够
添加、显示和删除这样的产品: < BR>
/购物车/添加/?ID=1
/购物车/展览/
/购物车/删除/?ID=1 < BR>< BR>
安装
---- < BR>
此应用程序需要django版本1.4;以上所有版本都应该可以。 < BR>
只需使用pip之类的工具安装软件包,然后将"carton"添加到
您的"已安装的应用程序"设置。 < BR>
添加"cart_product_model"设置,即指向产品模型的虚线路径。 < BR>
这是您运行测试的方式: < BR>
./manage.py test carton.tests--settings=carton.tests.settings < BR>< BR>
摘要
-- < BR>
购物车是存储在会话中的对象。产品关联
运送物品。 < BR>
购物车

----产品
----价格
----数量 < BR>
购物车项目存储价格、数量和
产品型号。 < BR>< BR>
您可以访问产品的所有属性,例如名称: < BR>
{%用于cart.items%}中的项目
{{item.price}
{{item.quantity}
{{item.product.name}
{%endfor%} < BR>< BR>< BR>
管理购物车项目
------ < BR>
这些是添加、删除和访问购物车项目的简单操作: < BR>
>;>;apple=product.objects.all()[0]
>>>购物车添加(苹果,价格=1.5)
>>>购物车中的苹果
正确
>>>购物车。移除(苹果)
>;>c中的苹果艺术
错误 < BR>
>>>橙色=product.objects.all()[1]
>>>购物车添加(苹果,价格=1.5)
>>>购物车总计
十进制('1.5')
>>>购物车添加(橙色,价格=2.0)
>>>购物车总计
十进制('3.5') < BR>
请注意我们如何检查产品是否在购物车中-如下
语句是执行相同操作的不同方式: < BR>
>>>购物车中的苹果
>>>购物车中的苹果产品
>>>>苹果在[购物车中商品的商品.商品] < BR>< BR>
"产品"指的是数据库对象。"购物车项目"是
我们存储产品的副本,它是数量和价格。 < BR>
>>>购物车项目
[cartitem对象(apple),cartitem对象(orange)] < BR>
>>>购物车产品
[<;产品:苹果>;,<;产品:橙色>;] < BR>< BR>
清除所有项目: < BR>
>;>>购物车。清除()
>>>购物车总计
0 < BR>< BR>
增加产品数量: < BR>
>>>购物车添加(苹果,价格=1.5)
>;>cart.add(apple)无需重复价格。
>>>购物车总计
十进制('3.0') < BR>< BR>
请注意,只有在首次添加产品时才需要价格。 < BR>
>>>购物车添加(橙色)
**valueerror:添加购物车项目时缺少价格。 < BR>< BR>
您可以知道购物车中有多少物品: < BR>
>;>>购物车。清除()
>>>购物车添加(苹果,价格=1.5)
>>>购物车添加(橙色,价格=2.0,数量=3)
>>>购物车计数
4

2 < BR>< BR>
您可以同时添加多个产品: < BR>
>;>>购物车。清除()
>>>购物车添加(橙色,价格=2.0,数量=3)
>>>购物车总计
十进制('6')
>>>购物车添加(橙色,数量=2)
>>>购物车总计
十进制('10') < BR>< BR>
价格仅在首次添加产品时才相关: < BR>
>;>>购物车。清除()
>>>购物车添加(橙色,价格=2.0)
>>>购物车总计
十进制('2')
>;>;cart.add(橙色,价格=100)忽略此价格
>>>购物车总计
十进制('4') < BR>< BR>
注意第二次通话时如何忽略价格。 < BR>< BR>
您可以更改购物车中已存在的产品数量: < BR>
>>>购物车添加(橙色,价格=2.0)
>>>购物车总计
十进制('2')
>>>购物车。设置数量(橙色,数量=3)
>>>购物车总计
十进制('6')
>>>购物车。设置数量(橙色,数量=1)
>>>购物车总计
十进制('2')
>>>购物车。设置数量(橙色,数量=0)
>>>购物车总计
0
>>>购物车。设置数量(橙色,数量=-1)
***值错误:更新购物车时数量必须为正 < BR>< BR>< BR>
删除所有产品: < BR>
>>cart.add(苹果,价格=1.5,数量=4)
>>>购物车总计
十进制('6.0')
>>>购物车。移除(苹果)
>>>购物车总计
0
>>>购物车中的苹果
错误 < BR>< BR>
删除产品的单个事件: < BR>
>>cart.add(苹果,价格=1.5,数量=4)
>;>>购物车。移除单个(苹果)
>>>购物车中的苹果
正确
>>>购物车总计
十进制('4.5')
>;>>购物车。移除单个(苹果)
>>>购物车总计
十进制('3.0')
>>>购物车.remove_single(苹果)
>>>购物车总计
十进制('1.5')
>;>>购物车。移除单个(苹果)
>>>购物车总计
0 < BR>< BR>
多个推车
----- < BR>
django carton支持在同一项目中使用多个cart。
Cart需要使用不同的会话存储在Django会话中 钥匙。 < BR>
来自carton.cart进口车 < BR>
cart_1=cart(session=request.session,session_key='cart-1')
cart_2=购物车(会话=请求会话,会话密钥='cart-2') < BR>< BR>
使用产品模型
---- < BR>
django carton需要知道如何列出您的产品对象。 < BR>
默认行为是使用
"购物车产品型号"设置并列出所有产品。 < BR>
使用默认的queryset管理器,所有产品
已检索。您可以通过定义一些查找来筛选产品
"购物车产品查找"设置中的参数。 < BR>
设置.py < BR>
购物车产品查找={
"已发布":真,
"状态":"A",
< BR>< BR>
如果您需要进一步定制产品模型和查询集的方式
检索时,您始终可以将默认的"cart"子类并覆盖
"get\u queryset"方法。在这种情况下,您应该考虑到: < BR>
*您可能不需要"cart_product_model"和"cart_product_lookup"`
如果您可以直接访问您的产品模型并定义
直接在Cart子类上过滤。
*您可能需要编写自己的模板标记来检索购物车
由于"cart"类上的默认"get\u cart"模板标记点
由Django Carton定义。 < BR>< BR>
设置
-- < BR>
模板标记名 < BR>
您可以使用模板检索购物车
`{%get_cart as my_cart%}`。 < BR>
您可以使用
"购物车模板标记名称"设置。 < BR>< BR>
在项目设置中
购物车模板标签名称='购物篮' < BR>
在模板中
{%load carton_tags%}
{%get_basket as my_basket%} < BR>< BR>
陈旧物品 < BR>
购物车项目与数据库中的产品关联。有时可以找到产品
在删除其数据库实例后。这些项目称为陈旧的 项目。默认情况下,它们将从购物车中移除。 < BR>
会话密钥 < BR>
"购物车会话密钥"设置控制会话密钥的名称。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java3D图表JavaGnuplotHybrid   java httpclient异常“org.apache.http.conn.ConnectionPoolTimeoutException:等待连接超时”   java如何使用Drive API连接到Google Drive文件夹   java如何正确组合@PathParams和@RequestBody?   使用JsonParser的java Jackson反序列化正在跳过@context的第一个键值对   java Twitter4j为getCreatedAt和getCountry获取空白或null   java doOnNext()不会被称为Spring Webflux   java Liberty批处理在使用与spring批处理相同的输入参数启动作业时未引发异常(JobInstanceAlreadyExistsException)   api使用WordNet有没有简单的基于Java的词义消歧?   Java和YAML:如何解析多个YAML文档并将它们合并到单个YAML表示?   swing Java:mouseClicked事件不总是触发   从firebase获取Json作为字符串在java中不起作用   java将带有extrastring的意图从活动发送到选项卡片段   Java中的调用方法问题   java是否可以在TestNG dataprovider类中注入变量   java如何在安卓 studio中使列表中的项目可单击并引导到具有特定格式的新页面   java程序在eclipse中运行,但不在终端中运行   java无法让mockito模拟公共类的公共方法