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']