diff --git a/backend/haengsha/settings.py b/backend/haengsha/settings.py index 85cdb9c..940c538 100644 --- a/backend/haengsha/settings.py +++ b/backend/haengsha/settings.py @@ -34,6 +34,7 @@ 'ec2-13-209-8-183.ap-northeast-2.compute.amazonaws.com', "localhost", "127.0.0.1", + "10.150.196.98" ] # APPEND_SLASH = False diff --git a/backend/post/models.py b/backend/post/models.py index eb4ce52..64b5558 100644 --- a/backend/post/models.py +++ b/backend/post/models.py @@ -6,10 +6,10 @@ class Duration(models.Model): event_day = models.DateField(null=False,primary_key=True,default=date.today) class Post(models.Model): - title = models.CharField(max_length=30) + title = models.CharField(max_length=300) author = models.ForeignKey(PersonalUser, on_delete=models.CASCADE,null=True) - content = models.CharField(null=True,max_length=1000) - place = models.CharField(null=True,max_length=30) + content = models.CharField(null=True,max_length=10000) + place = models.CharField(null=True,max_length=300) image = models.URLField(null=True) is_festival = models.BooleanField(null=True) like_users = models.ManyToManyField(PersonalUser, blank=True, related_name='like_posts', through='Like') @@ -38,4 +38,4 @@ class EventDuration(models.Model): class Recommend(models.Model): user = models.ForeignKey(PersonalUser, on_delete=models.CASCADE) post = models.ForeignKey('post.Post', on_delete=models.CASCADE) - score = models.IntegerField(default=0) \ No newline at end of file + score = models.IntegerField(default=0) diff --git a/backend/post/urls.py b/backend/post/urls.py index 802525c..d7a30ee 100644 --- a/backend/post/urls.py +++ b/backend/post/urls.py @@ -3,35 +3,8 @@ app_name = 'post' urlpatterns = [ - # path('', PostListView.as_view(), name='post-list'), - - # # 키워드 필터만 사용한 URL - # path('keyword//', PostListView.as_view(), name='post-filter-by-keyword'), - - # # 축제 여부 필터만 사용한 URL - # path('festival//', PostListView.as_view(), name='post-filter-by-festival'), - - # # 날짜 범위 필터만 사용한 URL - # # 홈화면을 위한 single-sided boundary query를 사용한 URL - # path('date///', PostListView.as_view(), name='post-filter-by-date'), - - # # start_date만 사용한 URL - # # fixed duplicate date issue - # path('start_date//', PostListView.as_view(), name='post-filter-by-start-date'), - - # # end_date만 사용한 URL - # # fixed duplicate date issue. - # path('end_date//', PostListView.as_view(), name='post-filter-by-end-date'), - - # # 키워드와 축제 여부 필터를 사용한 URL - # path('keyword//festival//', PostListView.as_view(), name='post-filter-keyword-and-festival'), - - # # 키워드와 날짜 범위 필터를 사용한 URL - # path('keyword//date///', PostListView.as_view(), name='post-filter-keyword-and-date'), - - # # 축제 여부와 날짜 범위 필터를 사용한 URL - # # fixed issue with duplicate items in the given date range. - # path('festival//date///', PostListView.as_view(), name='post-filter-festival-and-date'), + #게시글 올릴 때 사용할 url + path('', PostListView.as_view(), name='post-list'), # 모든 필터를 사용한 URL re_path(r'^keyword/(?P.*)/festival/(?P\d+)/date/(?P[\d-]*)/(?P[\d-]*)/$', PostListView.as_view(), name='post-filter-all'), diff --git a/backend/post/views.py b/backend/post/views.py index cbb075e..d085cb8 100644 --- a/backend/post/views.py +++ b/backend/post/views.py @@ -25,7 +25,7 @@ def get( posts = Post.objects.all() if keyword != "": - posts = posts.filter(Q(title__icontains=keyword) | Q(content__icontains=keyword)) + posts = posts.filter(Q(title__icontains=keyword) | Q(content__icontains=keyword) | Q(author__nickname__icontains=keyword)) if int(is_festival) != 2: is_festival = bool(int(is_festival)) posts = posts.filter(is_festival=is_festival) diff --git a/backend/user/migrations/0005_alter_personaluser_grade_alter_personaluser_interest.py b/backend/user/migrations/0005_alter_personaluser_grade_alter_personaluser_interest.py new file mode 100644 index 0000000..e15e74e --- /dev/null +++ b/backend/user/migrations/0005_alter_personaluser_grade_alter_personaluser_interest.py @@ -0,0 +1,51 @@ +# Generated by Django 4.1 on 2023-11-30 08:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("user", "0004_alter_personaluser_managers"), + ] + + operations = [ + migrations.AlterField( + model_name="personaluser", + name="grade", + field=models.CharField( + choices=[ + ("16", "16학번 이상"), + ("17", "17학번"), + ("18", "18학번"), + ("19", "19학번"), + ("20", "20학번"), + ("21", "21학번"), + ("22", "22학번"), + ("23", "23학번"), + ("Undefined", "Undefined"), + ], + default="Undefined", + max_length=10, + ), + ), + migrations.AlterField( + model_name="personaluser", + name="interest", + field=models.CharField( + choices=[ + ("dance", "댄스"), + ("meetup", "사교"), + ("social", "사회"), + ("theater", "연극"), + ("music", "음악"), + ("sports", "운동"), + ("art", "예술"), + ("religion", "종교"), + ("Undefined", "Undefined"), + ], + default="Undefined", + max_length=200, + ), + ), + ] diff --git a/backend/user/models.py b/backend/user/models.py index 924947b..ad3c1a3 100644 --- a/backend/user/models.py +++ b/backend/user/models.py @@ -64,7 +64,7 @@ class PersonalUser(AbstractUser, PermissionsMixin): role = models.CharField(max_length=10, choices=ROLE_CHOICES, default='User') major = models.CharField(max_length=20, choices=MAJOR_CHOICES, default='Undefined') grade = models.CharField(max_length=10, choices=GRADE_CHOICES, default='Undefined') - interest = models.CharField(max_length=10, choices=INTEREST_CHOICES, default='Undefined') + interest = models.CharField(max_length=200, choices=INTEREST_CHOICES, default='Undefined') USERNAME_FIELD = 'email' diff --git a/backend/user/views.py b/backend/user/views.py index 5609f85..35b7f4e 100644 --- a/backend/user/views.py +++ b/backend/user/views.py @@ -158,6 +158,7 @@ def contains_number(s): return any(character.isdigit() for character in s) email = request.data.get("email") + user = PersonalUser.objects.filter(email=email) if not user: return Response( @@ -166,6 +167,10 @@ def contains_number(s): user = PersonalUser.objects.get(email=email) password = request.data.get("password") + + print(f'email: {email}') + print(f'password: {password}') + if len(password) < 4 or len(password) > 20: return Response( { @@ -275,20 +280,24 @@ def signup(request): # for users ) valid_interest_choices = [choice[0] for choice in PersonalUser.INTEREST_CHOICES] - if not interest in valid_interest_choices: - return Response( - {"message": "Invalid interest."}, status=status.HTTP_400_BAD_REQUEST - ) + interest_list = interest.split(", ") + for elem in interest_list: + if not elem in valid_interest_choices: + return Response( + {"message": "Invalid interest."}, status=status.HTTP_400_BAD_REQUEST + ) + PersonalUser.objects.create_user( nickname=nickname, email=email, password=password, role=role, major=major, - grade=grade, interest=interest, + grade=grade ) + try: return Response({"message": "created user account"}, status=status.HTTP_200_OK) except Exception as e: diff --git a/frontend/.idea/compiler.xml b/frontend/.idea/compiler.xml index b86273d..b589d56 100644 --- a/frontend/.idea/compiler.xml +++ b/frontend/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/frontend/.idea/gradle.xml b/frontend/.idea/gradle.xml index 6c09e0c..ae388c2 100644 --- a/frontend/.idea/gradle.xml +++ b/frontend/.idea/gradle.xml @@ -1,12 +1,13 @@ +