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 *

मैंने इस कोड को फोर्कड कैटलॉग मॉडल में जोड़ा> added मैं इसे डैशबोर्ड में दिखाना चाहता हूं,डैशबोर्ड और ड्रॉपडाउन बॉक्स की छवि मैंने व्यवस्थापक की कोशिश की .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']
0
pythonoscar 9 अप्रैल 2020, 07:52

1 उत्तर

सबसे बढ़िया उत्तर

आपने फॉर्म को गलत तरीके से फोर्क किया है। आपके फॉर्म क्लास 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']
0
solarissmoke 10 अप्रैल 2020, 04:31