标签: django-oscar

Django Oscar.如何添加产品?

我是Python和Django的初学者.我安装了django-oscar.然后我配置它并启动服务器,它的工作原理.

现在,我不明白how to add a product

仪表板上有一个按钮Create new product.但是为了添加新产品,它要求选择产品类,我在给定的下拉选项中找不到任何产品类.

为我提供一个如何在django-oscar中添加产品的演示示例.

python django e-commerce django-oscar

5
推荐指数
2
解决办法
5268
查看次数

MediaDefiningClass对象是不可迭代的?

尝试使用Inlines在Admin Dashboard上获取自定义视图.下面是代码

from django.contrib import admin # noqa
from oscar.core.loading import get_model
from oscar.apps.catalogue.admin import *

CategoryAttribute = get_model('catalogue', 'CategoryAttribute')
CategoryAttributeValue = get_model('catalogue', 'CategoryAttributeValue')
Category = get_model('catalogue', 'Category')

class CategoryAttributeInline(admin.TabularInline):
    model = CategoryAttributeValue
    fk_name = 'category'
    extra = 1

class CategoryAdmin(admin.ModelAdmin):
    inlines = [CategoryAttributeInline,]

admin.site.register(CategoryAttributeValue)
admin.site.register(CategoryAttribute)
admin.site.register(Category, CategoryAdmin)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是 TypeError: 'MediaDefiningClass' object is not iterable

我的代码有什么问题?

python django django-oscar

5
推荐指数
1
解决办法
2347
查看次数

在Django-Oscar中通过Paypal处理付款

我正在尝试使用Django Oscar建立一个基本的电子商务站点,并且遇到了困难。问题的大部分与缺乏如何使用有意义的付款方式(例如Paypal,Stripe,Braintree)挂钩以及我从未听说过的晦涩难懂的付款方式有关。

无论哪种方式,我都尝试使用django-oscar-paypal并遵循其文档。Paypal Express部分似乎可以正常工作,因为该按钮会出现,并且类似要签出和处理的内容。

但是,如果我选择定期进行结帐(希望用卡付款),则会转到下一页(括号中的信息是我的)

在此处输入图片说明

这是以下模板的产品:

{% extends "checkout/checkout.html" %}
{% load i18n %}

{% block title %}
    {% trans "Payment details" %} | {{ block.super }}
{% endblock %}

{% block checkout_nav %}
    {% include 'checkout/nav.html' with step=3 %}
{% endblock %}

{% block checkout_title %}{% trans "Enter payment details" %}{% endblock %}

{% block order_contents %}{% endblock %}
{% block shipping_address %}{% endblock %}
{% block shipping_method %}{% endblock %}
{% block payment_method %}{% endblock %} …
Run Code Online (Sandbox Code Playgroud)

python django paypal braintree django-oscar

5
推荐指数
1
解决办法
524
查看次数

无法访问Django-Oscar中的产品价格?

试图访问产品的价格,使用文档.但是获得属性错误.

>>> from oscar.apps.partner import strategy, prices
>>> from oscar.apps.catalogue.models import *
>>> product = Product.objects.get(pk=1)
>>> info = strategy.fetch_for_product(product)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'module' object has no attribute 'fetch_for_product'
Run Code Online (Sandbox Code Playgroud)

要查看策略的所有属性,我会这样做

  >>> dir(strategy)
  >>> ['Base', 'D', 'Default', 'DeferredTax', 'FixedRateTax', 'NoTax', 'PurchaseInfo', 
    'Selector', 'StockRequired', 'Structured', 'UK', 'US', 'UseFirstStockRecord', 
'__builtins__', '__doc__', '__file__', '__name__',
 '__package__', 'availability', 'namedtuple', 'prices']
Run Code Online (Sandbox Code Playgroud)

所以fetch_for_product不属于策略属性.现在我如何获取特定产品的价格?

python django django-oscar

4
推荐指数
1
解决办法
1062
查看次数

如何扩展 django oscar 客户模型字段?

如何扩展 django-oscar 客户模型字段?我已扩展注册表以包含更多字段,在apps/customer/forms.py

class EmailUserCreationForm(forms.ModelForm):
    email = forms.EmailField(label=_('Email address'))
    password1 = forms.CharField(
        label=_('Password'), widget=forms.PasswordInput,
        validators=password_validators)
    password2 = forms.CharField(
        label=_('Confirm password'), widget=forms.PasswordInput)

    #### The extra fields I want to add #####

    first_name = forms.CharField(label=_('First name'))
    last_name = forms.CharField(label=_('Last name'))
    business_name = forms.CharField(label=_('Business name'))
    business_address = forms.CharField(label=_('Business address'))
    city = forms.CharField(label=_('City'))
Run Code Online (Sandbox Code Playgroud)

我还延长了[AbstractUser][1]在的领域apps/customer/abstract_models.py

class AbstractUser(auth_models.AbstractBaseUser,
                   auth_models.PermissionsMixin):
    """
    An abstract base user suitable for use in Oscar projects.

    This is basically a copy of the core AbstractUser model but …
Run Code Online (Sandbox Code Playgroud)

python django django-models python-2.7 django-oscar

4
推荐指数
1
解决办法
1414
查看次数

django-oscar 类别和产品翻译

我想用于django-oscar建立一个网上商店,该商店将提供两种主要语言。

Oscar'sView chart翻译对于常规字段(例如or )效果很好Add to chart,但不支持自定义元素,例如Categoriesor Product's Titles

我想要翻译:

  • Category
  • Product.Title
  • Product.Description

我想出了两种方法:

方法一——修改django-oscar模板

我可以根据奥斯卡的翻译文档创建自定义翻译集。

然后django.po用翻译后的类别和产品标题填写适当的文件。

不幸的是,我将不得不覆盖一些模板,因为它们trans默认不使用 templatetag。例如我会改变。

<a href="{{ category.get_absolute_url }}">{{ category.name }}</a>
Run Code Online (Sandbox Code Playgroud)

<a href="{{ category.get_absolute_url }}">{% trans category.name %}</a>
Run Code Online (Sandbox Code Playgroud)

这个奥斯卡的模板中。

这种方法的主要问题是需要覆盖模板、更新django.po以及使用每个要翻译的新条目进行编译。

方法二——使用django-modeltranslation

使用这个插件。

问题

我是否错过了一些内置django-oscar's功能,或者我必须使用上述方法之一?

django locale translation django-modeltranslation django-oscar

4
推荐指数
1
解决办法
1414
查看次数

django-oscar 和多租户

我正在为我们业务的电子商务部分研究 Django Oscar。所需的功能之一是我们需要在一个 Oscar 实例上托管多个商店,即每个店主都应该管理自己的产品、自己的合作伙伴等。并且不应该访问其他所有者的内容。

Google 表示从 0.6 版本开始就有此功能:https://django-oscar.readthedocs.io/en/releases-0.6/howto/multi_dealer_setup.html

但当前版本(截至今天的1.5)并没有提到这个功能。奥斯卡后期版本如何实现多租户?

django django-oscar

4
推荐指数
1
解决办法
2828
查看次数

禁用django-oscar的评论

是否可以在"django-oscar"中完全禁用'oscar.apps.catalogue.reviews'应用程序的功能?

正如我所看到的那样,它在许多地方使用,所以简单的删除INSTALLED_APPS工作不起作用,也许最简单的方法就是将其隐藏在模板中.有更好的解决方案吗?

python django e-commerce django-oscar

3
推荐指数
1
解决办法
1179
查看次数

在django-oscar主页添加产品

我正试图找出在我的主页内显示产品的最佳方式.我正在使用django-oscar附带的沙箱构建我的网站(我从Github克隆了该项目).

我发现默认主页是由"促销"应用控制的.但是,我的产品只显示在' http:// localhost:8000/catalog '中(由'catalog'应用程序控制).

有没有办法在我的主页上显示产品?或者我是否必须更改控制主页的默认应用程序?(在这种情况下,我该怎么做?)

编辑1:我相信我找到了解决方案.您可以按照教程如何自定义现有视图 ; 但是,您需要进行一些更改,因此您的代码必须如下所示:

 from oscar.apps.catalogue.views import CatalogueView

 class HomeView(CatalogueView):
     template_name = 'promotions/home.html'
Run Code Online (Sandbox Code Playgroud)

这样您就可以访问"promotions/home.html"中的产品.我不确定这是否是实现此方法的最佳方式,如果其他人有替代方案,请发表评论.

django django-oscar

3
推荐指数
1
解决办法
2357
查看次数

“AssertionError”对象没有属性“message”

我正在处理 django 中的表单,一旦填写完毕,就会向用户发送一封电子邮件,但我收到以下错误:

错误图像

我已经检查了我的代码,我的问题来自这个函数:

def send_manually_exception_email(request, e):
  exc_info = sys.exc_info()
  reporter = ExceptionReporter(request, is_email=True, *exc_info)
  subject = e.message.replace('\n', '\\n').replace('\r', '\\r')[:989]
  message = "%s\n\n%s" % (
    '\n'.join(traceback.format_exception(*exc_info)),
    reporter.filter.get_request_repr(request)
  )
  mail.mail_admins(subject, message, fail_silently=True, html_message=reporter.get_traceback_html())
Run Code Online (Sandbox Code Playgroud)

我能做些什么?

email django django-forms python-3.x django-oscar

3
推荐指数
1
解决办法
2万
查看次数