[英]Implementing 'saved books' cart in Django
我想實現一個購物車頁面,我可以在其中保存我以前保存的所有書籍
模型.py
class Book(models.Model):
LANGUAGES = (
('ukr', 'Ukrainian'),
('eng', 'English'),
('rus', 'Russian'),
)
image = models.ImageField(upload_to='images/', default='4.jpg')
title = models.CharField(max_length=128)
description = models.CharField(max_length=512)
language = models.CharField(choices=LANGUAGES, default='English', max_length=100)
# many books has one genre, if genre is deleted then delete related books
genre = models.ForeignKey('Genre', on_delete=CASCADE)
price = models.DecimalField(validators=[isBiggerThanZero], max_digits=6, decimal_places=2)
slug = AutoSlugField(populate_from='title', default='')
def __str__(self):
return self.title
class Genre(models.Model):
genre = models.CharField(max_length=32, default='')
def __str__(self):
return self.genre
我認為我需要添加一個帶有字段的新模型購物車
保存= 模型。外鍵(書)
但它應該是一個書籍清單和如何實施它的idk :(
PS1如果你想保存一本書,你應該先注冊,這樣用戶才被授權。 跳過會話:)
PS2如果有沒有額外模塊的方法,我將非常感謝你:)
由於您不想使用其他模塊,您可以創建一個模型Cart
其中user
和books
作為外鍵。
class Cart(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
book = models.ForeignKey(Book, on_delete=models.CASCADE)
# Quantity of a book that is saved in the cart. Default will be 1
quantity = models.IntegerField(default=1)
每當用戶訪問他的購物車時,只需從該模型中獲取數據並將其顯示給用戶即可。
Cart Table 看起來像這樣(來自Cart
模型的上述定義):
+------+------+----------+
| User | Book | Quantity |
+------+------+----------+
| 1 | 51 | 1 |
| 2 | 95 | 1 |
| 1 | 65 | 1 |
+------+------+----------+
您可以看到id=1
的用戶在他的購物車中存儲了兩本書( ids = 51
和65
),而用戶(id=2)
的購物車(book id=95
)中只有一本書。
在上述字段中添加您認為必要的任何字段 - 如價格等,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.