#python #django #django-models #django-rest-framework #django-views
#питон #джанго #django-модели #django-rest-framework #django-представления
Вопрос:
Я новичок в Django и в настоящее время настраиваю серверную часть электронной коммерции. Я создал модели, сериализаторы, представления и URL-адреса.
Теперь мне нужно настроить функциональность корзины, например create / update / delete / calculate_total и т.д.
Дело в том, что я совершенно потерялся. Не знаю, с чего начать и что делать дальше. Если у вас есть немного времени для быстрого руководства, я был бы искренне благодарен.
class Cart(models.Model):
owner = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
number_of_items = models.PositiveIntegerField(default=0)
total = models.DecimalField(default=0.00, max_digits=5, decimal_places=2)
def __str__(self):
return "User: {}, items in cart: {}".format(self.owner, self.number_of_items)
class CartItem(models.Model):
cart = models.ForeignKey(Cart, on_delete=models.CASCADE, default=None)
item = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField()
def __str__(self):
return str(self.id)
class CartSerializer(serializers.ModelSerializer):
owner = serializers.StringRelatedField()
class Meta:
model = Cart
fields = '__all__'
class CartItemSerializer(serializers.ModelSerializer):
class Meta:
model = CartItem
fields = "__all__"
class CartView(viewsets.ModelViewSet):
serializer_class = CartSerializer
queryset = Cart.objects.filter()
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
class CartItemView(viewsets.ModelViewSet):
serializer_class = CartItemSerializer
queryset = CartItem.objects.all()
router = DefaultRouter()
router.register(r'view', CartView)
router.register(r'item', CartItemView)
urlpatterns = [
path('', include(router.urls)),
]
Ответ №1:
Мой комментарий слишком длинный для комментария, поэтому я размещаю его здесь:
Если вы только начинаете с webdev / django, я бы начал с функций CRUD для каждой из ваших моделей, просто чтобы узнать все, а затем перейти к вашим потребностям после этого.
Я считаю, что это упростит то, что вам нужно обдумать. И у вас могут появиться некоторые идеи о том, что вы хотите сделать, настраивая функциональность CRUD.
Добавьте свои модели на свой сайт администратора, чтобы вы могли легко добавлять некоторые тестовые данные. Затем вы можете начать с создания общих представлений отображения для отображения этих данных, а затем перейти к общим представлениям редактирования и формам.
Комментарии:
1. Большое спасибо. Я буду использовать это в качестве отправной точки
Ответ №2:
Если я правильно понимаю, вы не знаете, куда двигаться с вашим проектом и какие функции добавить. Если это так, то я рекомендую добавлять такие вещи, как: просмотренные товары, список пожеланий, различные категории и подкатегории, рекомендуемые товары, какой-то тестовый способ оплаты, поиск по нескольким параметрам, вопросы к товарам, сообщения между пользователями и персоналом, чат-бот, обзоры товаров и т. Д.
Комментарии:
1. Спасибо за ответ, но дело в том, что я хочу обновить корзину данными, которые я получу из запроса.
2. Можете ли вы опубликовать свои мнения?