Django - oscar 在仪表板中显示一个字段
Django - oscar show a field in dashboard
from oscar.apps.catalogue.abstract_models import AbstractProduct
from oscar.core.compat import AUTH_USER_MODEL
from django.db import models
class Product(AbstractProduct):
seller = models.ForeignKey(
AUTH_USER_MODEL,
on_delete=models.CASCADE,
null=True)
from oscar.apps.catalogue.models import *
我将此代码添加到分支目录模型中 >
我想在仪表板中显示它,Image of dashboard and dropdown box 我试过 admin.site.register 但它不起作用。
这是用于覆盖表单的代码,当我 fork 和 overrtide 时它不起作用,但是当我更改核心代码时它起作用。
from oscar.apps.dashboard.catalogue.forms import ProductForm
from oscar.core.loading import get_class, get_classes, get_model
from yourappsfolder.catalogue.models import Product
class SellerField(ProductForm):
class Meta(ProductForm.Meta):
model =Product
fields = [
'title','seller', 'upc', 'description', 'is_public', 'is_discountable', 'structure']
您错误地分叉了表单。调用您的表单 class SellerField
将不起作用。 class 形式需要与核心形式具有完全相同的名称,否则 Oscar 的加载程序将找不到它。像这样更改它:
from oscar.apps.dashboard.catalogue.forms import ProductForm as BaseProductForm
class ProductForm(BaseProductForm):
class Meta(BaseProductForm.Meta):
fields = ['title','seller', 'upc', 'description', 'is_public', 'is_discountable', 'structure']
from oscar.apps.catalogue.abstract_models import AbstractProduct
from oscar.core.compat import AUTH_USER_MODEL
from django.db import models
class Product(AbstractProduct):
seller = models.ForeignKey(
AUTH_USER_MODEL,
on_delete=models.CASCADE,
null=True)
from oscar.apps.catalogue.models import *
我将此代码添加到分支目录模型中 > 我想在仪表板中显示它,Image of dashboard and dropdown box 我试过 admin.site.register 但它不起作用。
这是用于覆盖表单的代码,当我 fork 和 overrtide 时它不起作用,但是当我更改核心代码时它起作用。
from oscar.apps.dashboard.catalogue.forms import ProductForm
from oscar.core.loading import get_class, get_classes, get_model
from yourappsfolder.catalogue.models import Product
class SellerField(ProductForm):
class Meta(ProductForm.Meta):
model =Product
fields = [
'title','seller', 'upc', 'description', 'is_public', 'is_discountable', 'structure']
您错误地分叉了表单。调用您的表单 class SellerField
将不起作用。 class 形式需要与核心形式具有完全相同的名称,否则 Oscar 的加载程序将找不到它。像这样更改它:
from oscar.apps.dashboard.catalogue.forms import ProductForm as BaseProductForm
class ProductForm(BaseProductForm):
class Meta(BaseProductForm.Meta):
fields = ['title','seller', 'upc', 'description', 'is_public', 'is_discountable', 'structure']