在 Django-Oscar 中以编程方式定义 ProductAttributes 的位置
Where to programmatically define ProductAttributes in Django-Oscar
在为 Oscar Commerce 项目开发运输方式时,我发现我需要两个属性;一个包含代表产品重量的浮点值(我使用 Scale
class 称重产品)和一个链接到运输容器模型的实体属性。
需要将属性分配给任何需要运送的产品 class。 Where/how 我要创建它们吗?我有以下代码,但我不确定它适合哪里。
from oscar.core.loading import get_model
ProductAttribute = get_model('catalogue', 'ProductAttribute')
ProductAttribute.objects.get_or_create(code='weight',
product_class=[product class],
defaults={
'name': 'Weight',
'type': ProductAttribute.FLOAT,
})
ProductAttribute.objects.get_or_create(code='box',
product_class=[product class],
defaults={
'name': 'Box used for shipping'
'type': ProductAttribute.ENTITY,
})
添加此代码的最佳位置在哪里?
标准的 Django 方法是使用 data migration.
如果您不希望自动加载数据,则可以使用 fixture.
虽然我们通常只是通过管理员设置属性。此外 PR #2448 旨在添加仪表板支持以添加属性。
在为 Oscar Commerce 项目开发运输方式时,我发现我需要两个属性;一个包含代表产品重量的浮点值(我使用 Scale
class 称重产品)和一个链接到运输容器模型的实体属性。
需要将属性分配给任何需要运送的产品 class。 Where/how 我要创建它们吗?我有以下代码,但我不确定它适合哪里。
from oscar.core.loading import get_model
ProductAttribute = get_model('catalogue', 'ProductAttribute')
ProductAttribute.objects.get_or_create(code='weight',
product_class=[product class],
defaults={
'name': 'Weight',
'type': ProductAttribute.FLOAT,
})
ProductAttribute.objects.get_or_create(code='box',
product_class=[product class],
defaults={
'name': 'Box used for shipping'
'type': ProductAttribute.ENTITY,
})
添加此代码的最佳位置在哪里?
标准的 Django 方法是使用 data migration.
如果您不希望自动加载数据,则可以使用 fixture.
虽然我们通常只是通过管理员设置属性。此外 PR #2448 旨在添加仪表板支持以添加属性。