【问题标题】:Django-Oscar form fork - Error unknown fields (but fields are in the models)Django-Oscar form fork - 错误未知字段(但字段在模型中)
【发布时间】:2018-09-13 12:24:52
【问题描述】:

我正在尝试 fork django-oscar 以更改产品属性的仪表板表单,多选项。每个选项都需要一个描述字段。

project/oscar_fork/catalogue/models.py:
from django.db import models
from django.utils.translation import ugettext_lazy as _
from oscar.apps.catalogue.abstract_models import AbstractAttributeOption, AbstractAttributeOptionGroup

class AbstractAttributeOption(AbstractAttributeOption):
  description = models.CharField(_('Description'), max_length=250, blank=True)
  group = models.ForeignKey(
        'catalogue.AttributeOptionGroup',
        on_delete=models.CASCADE,
        related_name='optionsblabla',
        verbose_name=_("Group"))

from oscar.apps.catalogue.models import *

在我的数据库中使用额外字段“描述”更改了模型,但我的表单字段返回仍然找不到该字段。

project/oscar_fork/dashboard/catalogue/forms.py:
from oscar.apps.dashboard.catalogue import forms as base_forms

class AttributeOptionForm(base_forms.AttributeOptionForm):
  class Meta(base_forms.AttributeOptionForm.Meta):
    fields = ('option', 'description')

如果我直接在 Oscar 应用程序中更改 form.py 和 models.py 字段,它就可以工作。如上所示,其他形式可以很容易地分叉。用 AttributeOptionGroupForm 尝试过。我认为导入顺序有问题。我该如何解决这个问题?

Error:
django.core.exceptions.FieldError: Unknown field(s) (description) specified for AttributeOption

我正在使用 django-oscar v1.6。 Django v.2.08。

【问题讨论】:

    标签: django django-models django-forms django-oscar


    【解决方案1】:

    你的具体模型应该命名为AttributeOption,不带'Abstract',否则oscar不会选择它,而是使用它自己的AttributeOption模型,它没有描述:

    class AttributeOption(AbstractAttributeOption):
        description = ...
    

    之后您必须运行 makemigrationsmigrate。 检查您最后导入的models 模块的source code。您将看到他们的动态模型加载是如何工作的:

    if not is_model_registered('catalogue', 'AttributeOption'):
        class AttributeOption(AbstractAttributeOption):
            pass
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 2014-06-11
      • 2016-11-09
      • 1970-01-01
      • 2015-02-19
      • 2020-05-05
      • 2022-10-24
      相关资源
      最近更新 更多