【问题标题】:Django Oscar - Adding Options to a Product AttributeDjango Oscar - 为产品属性添加选项
【发布时间】:2018-10-06 19:17:19
【问题描述】:

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

基本上,我想做与文档中相同的操作,但将其转化为完整示例。 http://django-oscar.readthedocs.io/en/releases-1.6/topics/modelling_your_catalogue.html

因此,我认为我需要使用自定义模型文档来创建 Product 的子类并将这些属性添加到其中,这是否正确。 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 *

2018 年 4 月 26 日更新: https://github.com/django-oscar/django-oscar/pull/2448

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

【问题讨论】:

  • 这是在 1.6 版中添加的,目前作为 RC (pip install django-oscar==1.6rc1)。

标签: django-oscar


【解决方案1】:

产品属性让您可以在产品上设置额外数据,而无需自定义底层 Django 模型。

根据documentation,不,您不必覆盖默认的catalogue.Product 模型。相反,您应该创建具有 ProductAttributeProductClass,而 ProductAttribute 具有您想要的 OptionsGroup

您应该只覆盖默认模型,以防您希望所有产品都具有此功能(不管它们的ProductClass)。

基本上,您可以在自定义 Product 类中执行您已完成的操作,并将其作为迁移,或者通过仪表板执行相同操作。不需要覆盖 Product 类。

【讨论】:

  • 感谢您的回复。根据更新 - 检查 django 版本,因为我看不到在仪表板中添加选项组的能力。
  • 哦,好吧,the commit 建议它存在于 1.6rc1 中,所以它应该存在于 1.6 中
猜你喜欢
  • 1970-01-01
  • 2015-02-19
  • 2015-07-12
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
相关资源
最近更新 更多