Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Django e-commerce part36 Carts App

Cart アプリの作成

carts appを作成する

python manage.py startapp carts

carts/models.py にコードを書いていく

はじめに、ざっくりしたアウトラインを書いておくと便利。

class Cart(models.Model):
    # user
    # items
    # timestamp ** created
    # updated ** updated

    # subtotal price
    # taxes total
    # discounts
    # total
    

ここでは、前半の4つをまず作っていく

from django.conf import settings
from django.db import models

from product.models import Variation

class Cart(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
    items = models.ManyToManyField(Variation)
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
    updated = models.DateTimeField(auto_now=True, auto_now_add=False)

    def __str__(self):
        return self.id

userは、この時点ではblankをTrueにしておく。

CartItem classを新たに追加する

class CartItem(models.Model):
    item = models.ForeignKey(Variation)
    quantity = models.PositiveIntegerField(default=1)
    #line item total

    def __str__(self):
        return self.item.title

settings/local.py に新しいappを追加する。

これは忘れがちなので、注意。

    #my apps
    'carts',
    'newsletter',
    'products',
)

python manage.py makemigrations, migrate をしておく