Django - оскар показывать поле на приборной панели - PullRequest
0 голосов
/ 09 апреля 2020
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 *

Я добавил этот код в разветвленную модель каталога> Я хочу показать его на приборной панели, Изображение приборной панели и раскрывающегося списка Я попытался admin.site.register, но он не работает.

Это код для переопределения формы, когда я форка и переопределения он не работает, но когда я изменяю код в ядре, он работает.

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

1 Ответ

0 голосов
/ 10 апреля 2020

Вы неверно разметили форму. Вызов вашей формы класса SellerField не будет работать. Класс формы должен иметь точно такое же имя, что и основная форма, иначе загрузчик Оскара не найдет его. Измените это так:

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...