Django Oscar - 为产品属性添加选项

时间:2018-04-26 07:19:54

标签: django-oscar

我想在django oscar中为Product属性添加一些选项。

基本上我想在文档中做同样的事情,但是把它变成一个完整的例子。 http://django-oscar.readthedocs.io/en/releases-1.6/topics/modelling_your_catalogue.html

所以要做到这一点,我认为我需要使用自定义模型文档来创建产品的子类并将这些属性添加到其中。 http://django-oscar.readthedocs.io/en/releases-1.6/howto/how_to_customise_models.html

所以,如果我把上面两个文档页面放在一起并将各自的代码放在一起,我会得到这样的东西吗?

from django.db import models

from oscar.apps.catalogue.abstract_models import AbstractProduct

class Product(AbstractProduct):
    video_url = models.URLField()

    language = AttributeOptionGroup.objects.create(name='Language')
    AttributeOption.objects.create(group=language,option='English')
    AttributeOption.objects.create(group=language,option='Croatian')

    klass = ProductClass.objects.create(name='foo', slug='bar')
    ProductAttribute.objects.create(
        product_class=klass,
        name='Language',
        code='language',
        type='option',
        option_group=language)

from oscar.apps.catalogue.models import *

更新26/04/2018: https://github.com/django-oscar/django-oscar/pull/2448

修复Django Oscar以添加使用仪表板添加选项组的功能。 我想我需要检查我的Django版本,因为我在仪表板中看不到这个选项。

1 个答案:

答案 0 :(得分:2)

  

产品属性允许您在产品上设置其他数据,而无需自定义基础Django模型。

根据documentation,不,您不必覆盖默认的catalogue.Product模型。您应该创建ProductClass,其中ProductAttribute包含您想要的OptionsGroup

您应该只覆盖默认模型,以防您希望所有产品具有此功能(无论其ProductClass)。

基本上,您可以在自定义Product类中执行您已完成的操作,并将其迁移,或通过信息中心执行相同操作。 Product类。