본문 바로가기

BackEnd/Django

(40)
[Django]Notification API2 알람은 유저가 url을 입력하기 보단 좋아요, 댓글, 팔로우 url이 실행될 때 알람기능도 동시에 이루어 져야 한다. 20번째 view를 생성하는 것이 아니라 function을 생성했다.인자로는생성자, 대상, 타입, 이미지, 코멘트이다. 그리고 이 function은 Notification 모델에 각각의 튜플값들을 생성한다. 들어가야 할 곳은 세 곳! 1. Follow class FollowUser(APIView): def post(self, request, id, format=None) : user = request.user #notification try: user_to_follow = models.User.objects.get(id=id) except models.User.DoesNotExist: r..
[Django]RuntimeError: Model class Moonstargram.notifications.models.Notification doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. RuntimeError: Model class Moonstargram.notifications.models.Notification doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. 다음과 같은 에러로그가 발생했는데.. from django.apps import AppConfig class NotificationsConfig(AppConfig): name = 'notifications' 앱의 이름이 정확한 위치를 가리키고 있지 않아서 이다. from django.apps import AppConfig class NotificationsConfig(AppConfig): name = 'Moonstargram...
[Django]Notification API from django.urls import pathfrom . import views app_name = "notifications"urlpatterns = [ path("", view=views.Notifications.as_view(), name="notification"), ] URL생성 from rest_framework.views import APIViewfrom rest_framework.response import Responsefrom rest_framework import statusfrom . import models, serializers class Notifications(APIView): def get(self, request, format=None): user= request.u..
[Django]Notification App 만들기 다음과 같이 나에 변화를 알려주는 알람!을 만들어볼꺼임 django-admin startapp notifications 다음을 통해서 notification app을 만들고 from django.db import modelsfrom Moonstargram.users import models as user_modelsfrom Moonstargram.images import models as image_models class Notification(image_models.TimeStampedModel) : TYPE_CHOICES = ( ('like', 'Like'), ('comment', 'Comment'), ('follow', 'Follow') ) creator = models.ForeignKey(user..
[Django]해시태그 search 2 class Search(APIView): def get(self, request, format=None): hashtags = request.query_params.get('hashtags',None) if hashtags is not None: hashtags = hashtags.split(",") images = models.Image.objects.filter( tags__name__in=hashtags).distinct() serializer = serializers.CountImageSerializer(images, many=True) return Response(data=serializer.data, status=status.HTTP_200_OK) else: return Response(sta..
[Django]해시태그 search 1 pipenv install django-taggit일단 taggit을 다운 받자 이 친구는 모델에서 해시태그를 쉽게 걸어주는 역할을 한다 class Image(TimeStampedModel) : """ Image Model """ file = models.ImageField() location = models.CharField(max_length=140) caption = models.TextField() creator = models.ForeignKey( user_models.User,on_delete=models.CASCADE, null=True, related_name='images') tags = TaggableManager() 이미지 모델에서 다음과 같이 태그를 삽입해주자. 마이그레이션 후에 p..
[Django]Following&Follower List만들기! path("/followers",view=views.UserFollowers.as_view(),name='user_followers'),path("/following",view=views.UserFollowering.as_view(),name='user_followering') class UserFollowers(APIView): def get(self, request, username, format=None): try: found_user = models.User.objects.get(username=username) except models.User.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) user_followers = foun..
[Django] User Profile 다음과 같은 화면에 필요한 데이터를 모을거임! path("/",view=views.UserProfile.as_view(),name='user_profile') 일단 유저의 url을 추가하고!( 은 실제 유저의 이름!) class UserProfile(APIView): def get(self, request, username, format=None): try : found_user = models.User.objects.get(username=username) except models.User.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) serializer = serializers.UserProfileSerializer(found_use..