Я использую Djnago-oscar для сайта электронной коммерции, основанного на солнечном энергетическом оборудовании.Мне нужно добавить опцию в «Корзину» модели с «Имя батареи», «Примечания» и «Производитель».Есть причина, по которой я не хочу добавлять ее в подкласс AbstractProduct.Скорее я хочу построить его с моделью подкласса Basket.Теперь мне нужна помощь, чтобы понять мой рабочий процесс, чтобы заставить это работать с формой AddToBasket.В Django-oscar / basket есть файл formsets.py с использованием фабрики форм и формы.Я немного запутался и решил получить помощь от сообщества.
Ниже приведен код:
models.py
MANUFACTURERS = (
('UPS SYSTEMS', 'UPS SYSTEMS'),
('VOLTA', 'VOLTA'),
('TOSHIBA ', 'TOSHIBA '),
)
BATTERIES = (
('LITHIUM', 'LITHIUM'),
('NICAD', 'NICAD'),
('NIFE ', 'NIFE '),
)
class AddBattery(AbstractBasket):
battery_name = models.CharField(max_length=1, choices=BATTERIES)
manufacturers = models.CharField(max_length=1, choices=MANUFACTURERS)
price = models.DecimalField(decimal_places=2, max_digits=6)
notes = models.CharField(max_length=200, null=True, blank=True)
def __str__(self):
return self.battery_name
class Basket(AbstractBasket):
add_bat=models.ForeignKey(_(u'Add a Batter'), to=AddBattery, null=True, blank=True)
forms.py
from django import forms
from django.conf import settings
from django.db.models import Sum
from django.utils.translation import ugettext_lazy as _
from oscar.forms import widgets
from oscar.apps.basket.forms import BasketLineForm as CoreBasketLineForm,\
SavedLineForm as CoreSavedLineForm, BasketVoucherForm as CoreBasketVoucherForm,\
AddToBasketForm as CoreAddToBasketForm
from .models import AddBattery
from oscar.core.loading import get_model, get_classes
Line = get_model('basket', 'line')
Basket = get_model('basket', 'basket')
Product = get_model('catalogue', 'product')
class BasketLineForm(CoreBasketLineForm):
class AddBatteryForm(CoreBasketLineForm.Meta):
model = AddBattery
fields = ['battery_name', 'manufacturers', 'comment']
views.py
Мне нужна помощь, чтобы понять эту часть, потому что она имеет так много вложенных элементов, и я не могсделай это правильно.Помощь очень ценится.
Шаблоны: Я могу решить это, потому что мне нужен администратор, чтобы иметь возможность добавить его, но только у конечного пользователя будет возможность выбирать из с ценой.При выборе клиента мне нужно иметь сводную цену с продуктами и плюс батарею.Любой совет для этой части также будет полезен для получения сводной цены в корзине для оформления заказа.