Skip to content

Commit 5f88a1a

Browse files
committed
Modified django backend
1 parent 7e82ae7 commit 5f88a1a

File tree

6 files changed

+101
-34
lines changed

6 files changed

+101
-34
lines changed

backend/Backend/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import os
22
from datetime import timedelta
33
from pathlib import Path
4+
45
from django.conf import settings
56

67
BASE_DIR = Path(__file__).resolve().parent.parent
@@ -31,7 +32,6 @@
3132
)
3233
}
3334

34-
3535
SIMPLE_JWT = {
3636
'ACCESS_TOKEN_LIFETIME': timedelta(days=30),
3737
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),

backend/core/models.py

Lines changed: 53 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,29 @@
55
class Product(models.Model):
66
_id = models.AutoField(editable=False, primary_key=True)
77
user = models.ForeignKey(
8-
User, related_name='product', on_delete=models.CASCADE)
8+
User,
9+
related_name='product',
10+
on_delete=models.CASCADE
11+
)
912
name = models.CharField(
10-
max_length=255, verbose_name='product name', blank=True, null=True)
13+
max_length=255,
14+
verbose_name='product name',
15+
blank=True,
16+
null=True
17+
)
1118
image = models.ImageField(blank=True, null=True)
1219
brand = models.CharField(
13-
max_length=255, verbose_name='product brand', blank=True, null=True)
20+
max_length=255,
21+
verbose_name='product brand',
22+
blank=True,
23+
null=True
24+
)
1425
category = models.CharField(
15-
max_length=255, verbose_name='product category', blank=True, null=True)
26+
max_length=255,
27+
verbose_name='product category',
28+
blank=True,
29+
null=True
30+
)
1631
description = models.TextField(null=True, blank=True)
1732
rating = models.DecimalField(max_digits=7, decimal_places=2)
1833
numReview = models.IntegerField(null=True, blank=True, default=0)
@@ -48,15 +63,21 @@ def __str__(self):
4863

4964
class Order(models.Model):
5065
user = models.ForeignKey(
51-
User, related_name='order', on_delete=models.CASCADE)
66+
User,
67+
related_name='order',
68+
on_delete=models.CASCADE
69+
)
5270
paymentMethord = models.CharField(max_length=255, blank=True, null=True)
5371
taxPrice = models.DecimalField(
5472
max_digits=7, decimal_places=2, blank=True, null=True)
5573
isPaid = models.BooleanField(default=False)
5674
createdAt = models.DateTimeField(auto_now_add=False, blank=True, null=True)
5775
isDeliverd = models.BooleanField(default=False)
5876
deliverdAt = models.DateTimeField(
59-
auto_now_add=False, null=True, blank=True)
77+
auto_now_add=False,
78+
null=True,
79+
blank=True
80+
)
6081
createdAt = models.DateTimeField(auto_now_add=True)
6182
_id = models.AutoField(editable=False, primary_key=True)
6283

@@ -70,15 +91,25 @@ def __str__(self):
7091

7192
class OrderItem(models.Model):
7293
product = models.ForeignKey(
73-
Product, related_name='orderitem',
74-
on_delete=models.SET_NULL, null=True)
94+
Product,
95+
related_name='orderitem',
96+
on_delete=models.SET_NULL,
97+
null=True
98+
)
7599
order = models.ForeignKey(
76-
Order, related_name='orderitem',
77-
on_delete=models.SET_NULL, null=True)
100+
Order,
101+
related_name='orderitem',
102+
on_delete=models.SET_NULL,
103+
null=True
104+
)
78105
name = models.CharField(max_length=200, null=True, blank=True)
79106
qty = models.IntegerField(null=True, blank=True, default=0)
80107
price = models.DecimalField(
81-
max_digits=7, decimal_places=2, null=True, blank=True)
108+
max_digits=7,
109+
decimal_places=2,
110+
null=True,
111+
blank=True
112+
)
82113
image = models.CharField(max_length=200, null=True, blank=True)
83114
_id = models.AutoField(primary_key=True, editable=False)
84115

@@ -92,14 +123,22 @@ def __str__(self):
92123

93124
class ShippingAddress(models.Model):
94125
order = models.OneToOneField(
95-
Order, related_name='shippingaddress',
96-
on_delete=models.CASCADE, null=True, blank=True)
126+
Order,
127+
related_name='shippingaddress',
128+
on_delete=models.CASCADE,
129+
null=True,
130+
blank=True
131+
)
97132
address = models.CharField(max_length=200, null=True, blank=True)
98133
city = models.CharField(max_length=200, null=True, blank=True)
99134
postalCode = models.CharField(max_length=200, null=True, blank=True)
100135
country = models.CharField(max_length=200, null=True, blank=True)
101136
shippingPrice = models.DecimalField(
102-
max_digits=7, decimal_places=2, null=True, blank=True)
137+
max_digits=7,
138+
decimal_places=2,
139+
null=True,
140+
blank=True
141+
)
103142
_id = models.AutoField(primary_key=True, editable=False)
104143

105144
class Meta:

backend/core/serializer.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1-
from django.contrib.auth.models import User
1+
from django.contrib.auth import get_user_model
22
from rest_framework.serializers import ModelSerializer, SerializerMethodField
33
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
44
from rest_framework_simplejwt.tokens import RefreshToken
55

6-
from core.models import Order, OrderItem, Product, Review, ShippingAddress
6+
from core.models import (
7+
Order,
8+
OrderItem,
9+
Product,
10+
Review,
11+
ShippingAddress
12+
)
713

814

915
# Users Serializer
@@ -12,7 +18,7 @@ class UserSerializer(ModelSerializer):
1218
isAdmin = SerializerMethodField(read_only=True)
1319

1420
class Meta:
15-
model = User
21+
model = get_user_model()
1622
fields = ('_id', 'username', 'email', 'isAdmin')
1723

1824
def get__id(self, obj):
@@ -26,7 +32,7 @@ class UserSerializerWithToken(UserSerializer):
2632
token = SerializerMethodField(read_only=True)
2733

2834
class Meta:
29-
model = User
35+
model = get_user_model()
3036
fields = ('_id', 'username', 'email', 'isAdmin', 'token')
3137

3238
def get_token(self, obj):

backend/core/urls.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
from django.urls import path
22

3-
from core.views import (MyTokenObtainPairView, getProduct, getProducts,
4-
getUserProfile, getUsers, registerUser,
5-
updateUserProfile)
3+
from core.views import (
4+
MyTokenObtainPairView,
5+
getProduct,
6+
getProducts,
7+
getUserProfile,
8+
getUsers,
9+
registerUser,
10+
updateUserProfile
11+
)
612

7-
APP_NAME = 'core'
13+
app_name = 'core'
814

915
urlpatterns = [
1016
# user urls - auth

backend/core/views.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,23 @@
55
from rest_framework.status import HTTP_400_BAD_REQUEST
66
from rest_framework_simplejwt.views import TokenObtainPairView
77

8-
from core.models import Order, OrderItem, Product, Review, ShippingAddress
9-
from core.serializer import (MyTokenObtainPairSerializer, ProductSerializer,
10-
UserSerializer, UserSerializerWithToken)
11-
8+
from core.models import (
9+
Order,
10+
OrderItem,
11+
Product,
12+
Review,
13+
ShippingAddress
14+
)
15+
from core.serializer import (
16+
MyTokenObtainPairSerializer,
17+
ProductSerializer,
18+
UserSerializer,
19+
UserSerializerWithToken
20+
)
1221

1322
# Users views
1423

24+
1525
class MyTokenObtainPairView(TokenObtainPairView):
1626
serializer_class = MyTokenObtainPairSerializer
1727

@@ -20,13 +30,19 @@ class MyTokenObtainPairView(TokenObtainPairView):
2030
@permission_classes([IsAuthenticated])
2131
def updateUserProfile(request):
2232
user = request.user
23-
serializer = UserSerializerWithToken(user, many=False)
2433
data = request.data
25-
user.first_name = data.get('name')
26-
user.email = data.get('email')
27-
if data.get('password') != '':
28-
user.set_password(data.get('password'))
34+
first_name = data.get('name')
35+
username = data.get('email')
36+
password = data.get('password')
37+
38+
user.first_name = first_name
39+
40+
if username:
41+
user.username = username
42+
if password != '':
43+
user.set_password(password)
2944
user.save()
45+
serializer = UserSerializerWithToken(user, many=False)
3046
return Response(serializer.data)
3147

3248

@@ -53,7 +69,7 @@ def registerUser(request):
5369
user = User.objects.create(
5470
first_name=data.get('name'),
5571
username=data.get('email'),
56-
email=data.get('email'),
72+
email=data.get('email')
5773
)
5874
user.set_password(data.get('password'))
5975
user.save()

frontend/src/Pages/UserProfilePage.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function UserProfilePage({ history }) {
2929
setEmail(user.email);
3030
}
3131
}
32-
}, [dispatch, userInfo, history, user]);
32+
}, []);
3333

3434
const submitHandler = (e) => {
3535
e.preventDefault();

0 commit comments

Comments
 (0)