Skip to content

Commit 8393326

Browse files
committed
create message
1 parent 2b9f64e commit 8393326

23 files changed

+121
-217
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
venv/
55
*.pyc
66
db.sqlite3
7-
*/migrations/
7+
migrations/

.idea/workspace.xml

+17-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

account/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

account/migrations/0001_initial.py

-44
This file was deleted.

account/migrations/0002_user_requests.py

-19
This file was deleted.

account/migrations/0003_user_age_user_image_user_level_user_nickname_and_more.py

-43
This file was deleted.

account/models.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33

44
# Create your models here.
55
class User(AbstractUser):
6-
requests = models.ManyToManyField("utils.Request",related_name = "users",null = True)
7-
age = models.IntegerField(max_length=3, null=False) #나이 제한을 두어야 할까?
8-
nickname = models.CharField(max_length=12, null=False)
9-
level = models.CharField(max_length=100)
10-
point = models.IntegerField()
11-
image = models.ImageField(upload_to='uploads/') #저장 위치를 어디로?
6+
age = models.IntegerField(max_length=3) #나이 제한을 두어야 할까?
7+
nickname = models.CharField(max_length=12, null=True)
8+
level = models.CharField(max_length=100,null = True, default="")
9+
point = models.IntegerField(null = True, default = 0)
10+
image = models.ImageField(upload_to='uploads/',null = True) #저장 위치를 어디로?
1211

1312
### 해결된 질문
1413
# def get_solved_request(self):

account/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def get(self, request):
4040
try:
4141
user = User.objects.get(username = username)
4242
except User.DoesNotExist:
43-
user = User.objects.create_user(username=username, password=None)
43+
user = User.objects.create_user(username=username, password=None,age = age)
4444

4545
# 로그인 처리
4646
login(request, user)
File renamed without changes.

utils/admin.py message/admin.py

File renamed without changes.

utils/apps.py message/apps.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
class UtilsConfig(AppConfig):
55
default_auto_field = 'django.db.models.BigAutoField'
6-
name = 'utils'
6+
name = 'message'

message/models.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from django.db import models
2+
3+
class Message(models.Model):
4+
content = models.CharField(max_length=100,blank = True, default = "")
5+
read = models.BooleanField(default=False)
6+
user = models.ForeignKey("account.User",on_delete=models.CASCADE, related_name="messages")
7+
created_at = models.DateTimeField(auto_now_add=True)
8+
def create_edit(self, word):
9+
self.content = f"{word}에 대한 수정 요청이 등록되었습니다."
10+
self.save()
11+
12+
def create_answer(self, question):
13+
self.content = f"{question}에 대한 답변이 등록되었습니다."
14+
self.save()
15+
16+
def update_level(self, grade):
17+
self.content = f"{self.user.nickname}님의 등급이 {grade}으로 조정되었습니다."
18+
self.save()
19+
20+
def get_edit(self, word):
21+
self.content = f"{word}에 대한 수정 요청이 등록되었습니다."
22+
self.save()
23+
24+
def grade_imminent(self, grade):
25+
self.content = f"{grade}까지 10포인트 남았습니다."
26+
self.save()
27+
28+
def get_point(self):
29+
self.content = f"{self.user.nickname} 님 10 포인트 획득하셨습니다!🔥 (현재 포인트 : {self.user.point}포인트)"
30+
self.save()
31+
32+
def get_answer(self):
33+
self.content = f"“나도 궁금해요” 표시한 게시글에 답변이 등록되었습니다"
34+
self.save()

message/serializers.py

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from django.utils import timezone
2+
from rest_framework import serializers
3+
from .models import Message
4+
5+
class MessageSerializer(serializers.ModelSerializer):
6+
created_at = serializers.SerializerMethodField()
7+
class Meta:
8+
model = Message
9+
fields = ["id","created_at","read","content"]
10+
11+
def get_created_at(self,obj):
12+
now = timezone.now()
13+
time_difference = now - obj.created_at
14+
if time_difference.total_seconds() < 60:
15+
return("방금 전")
16+
elif time_difference.total_seconds() < 60 * 60:
17+
minutes = int(time_difference.total_seconds() / 60)
18+
return(f"{minutes}분 전")
19+
elif time_difference.total_seconds() < 60 * 60 * 24:
20+
hours = int(time_difference.total_seconds() / (60 * 60))
21+
return(f"{hours}시간 전")
22+
elif time_difference.total_seconds() < 60 * 60 * 24 * 30:
23+
days = int(time_difference.total_seconds() / (60 * 60 * 24))
24+
return(f"{days}일 전")
25+
elif time_difference.total_seconds() < 60 * 60 * 24 * 365:
26+
months = int(time_difference.total_seconds() / (60 * 60 * 24 * 30))
27+
return(f"{months}달 전")
28+
else:
29+
years = int(time_difference.total_seconds() / (60 * 60 * 24 * 365))
30+
return(f"{years}년 전")

utils/tests.py message/tests.py

File renamed without changes.

message/urls.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.urls import path
2+
from .views import *
3+
4+
urlpatterns = [
5+
path("",MessageList.as_view()),
6+
]

message/views.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from rest_framework.decorators import permission_classes, authentication_classes
2+
from rest_framework.permissions import AllowAny
3+
from rest_framework.views import APIView
4+
from account.models import User
5+
from .models import Message
6+
from rest_framework.response import Response
7+
from .serializers import MessageSerializer
8+
9+
@permission_classes((AllowAny,))
10+
# @authentication_classes([JWTAuthentication])
11+
class MessageList(APIView):
12+
def get(self,request):
13+
user = request.user
14+
# user = User.objects.get(id = 1)
15+
messages = Message.objects.filter(user = user)
16+
response = MessageSerializer(messages,many = True).data
17+
return Response(response)
18+
19+
def delete(self,request):
20+
# user = request.user
21+
user = User.objects.get(id = 1)
22+
messages = Message.objects.filter(user = user,id__in = request.data["id"])
23+
for message in messages:
24+
message.delete()
25+
return Response(status=200)

utils/__init__.py

Whitespace-only changes.

utils/migrations/0001_initial.py

-35
This file was deleted.

utils/migrations/0002_delete_level_message_read_message_user_and_more.py

-42
This file was deleted.

utils/migrations/__init__.py

Whitespace-only changes.

utils/models.py

-12
This file was deleted.

utils/urls.py

-7
This file was deleted.

utils/views.py

-3
This file was deleted.

0 commit comments

Comments
 (0)