본문 바로가기

기타/django25

작정하고 장고 - commentapp 만들기 commentapp 만들기 python manage.py startapp commentapp 명령어을 통해 commentapp을 만든다. main project의 urls.py와 settings.py에 설정을 해준다. commentapp에 urls.py를 만들고 commentapp을 만들어준다. #1 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap4', 'accountapp', 'profileapp', 'artic.. 2023. 5. 31.
작정하고 장고 - ListView, Pagination ListView, Pagination 소개 및 적용 class ArticleListView(ListView): model = Article context_object_name = 'article_list' template_name = 'articleapp/list.html' paginate_by = 3 ArticleListView를 만들어준다. app_name = 'articleapp' urlpatterns = [ path('list/', ArticleListView.as_view(), name='list'), path('create/', ArticleCreateView.as_view(), name='create'), path('detail/', ArticleDetailView.as_view(), nam.. 2023. 5. 26.
작정하고 장고 - articleapp 구현 articleapp 구현 articleapp에 model을 만들어 준다. class Article(models.Model): writer = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='article', null=True ) title = models.CharField(max_length=200, null=True) image = models.ImageField(upload_to='article/',null=False) content = models.TextField(null=True) created_at = models.DateField(auto_now_add=True, null=True) class ArticleCreationFo.. 2023. 5. 26.
작정하고 장고 - magicGrid magicGrid 사용하기 python manage.py startapp articleapp을 통해 articleapp을 만든다. 메인 app의 settings.py에 'articleapp'를 추가해주고 urls.py에 path('articles/', include('articleapp.urls')),를 추가해준다. #settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap4', 'accountapp'.. 2023. 5. 24.
작정하고 장고 - get_success_url 함수 get_success_url 함수 프로필을 수정하고 나서 현재는 hello_world로 가고있지만 계정 페이지로 돌아가는것이 더 자연스럽다. # 현재 success_url = reverse_lazy('accountapp:hello_world') # 변경후 success_url = reverse_lazy('accountapp:detail') 그래서 위와 같이 코드를 변경해주면 적용이 안된다. detail 페이지는 urls.py 파일을 보면 의 추가적인 정보가 필요한데 success_url = reverse_lazy('accountapp:detail') 한줄로는 추가적인 데이터 전송 및 동적으로 페이지 설정이 안된다. def get_success_url(self): return reverse('account.. 2023. 5. 24.
작정하고 장고 - profile 마무리 Profile app 마무리 class ProfileUpdateView(UpdateView): model = Profile context_object_name = 'target_profile' form_class = ProfileCreationForm success_url = reverse_lazy('accountapp:hello_world') template_name = 'profileapp/Update.html' profile app에 updateview를 만들고 app_name = 'profileapp' urlpatterns = [ path('create/', ProfileCreateView.as_view(), name='create'), path('update/', ProfileUpdateView.. 2023. 5. 24.
작정하고 장고 - profile 구현 Profileapp 시작 그리고 ModelForm python manage.py startapp profileapp 명령어를 통해 profileapp을 만든다. 그리고 settings.py에 다음과 같이 profileapp을 추가해준다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap4', 'accountapp', 'profileapp', ] 마찬가지로 urls.py에도 profileapp에 대한 정보를 추가해준다.. 2023. 5. 20.
작정하고 장고 - decorator, superuser, media Decorator를 이용한 코드 간소화 저번 강의에서 구현 했던 인증 시스템을 더 간단하게 구현해보자. 우선 def hello_world(request)에서 user를 확인했었던 if request.user.is_authenticated: 삭제해주고 @login_required를 추가해준다. @login_required는 로그인이 되었는지 확인해주는 decorator이다. 그리고 자신의 정보만 수정 및 삭제가 가능하도록 해주는 코드를 작성할건데, decorators.py 파일을 만드로 해당 파일에 아래 코드를 추가해준다. def account_ownership_required(func): def decorated(request, *args, **kwargs): user = User.objects.get(.. 2023. 5. 17.
작정하고 장고 - Authentication 인증시스템 구축 오류 수정 accountapp의 urls.py에서 AccountUpdateView(UpdateView)와 AccountDeleteView(DeleteView)에 context_object_name = 'target_user'를 추가해준뒤 update.html과 delete.html에 user를 targer_user로 변경해준다. 27강 Authentication 인증시스템 구축 로그인 하지 않고 hello_world로 이동을 하고 2번 계정으로 로그인을 한뒤 1번 계정 삭제 페이지로 이동 할수있다. 이런 문제를 해결하기 위해 우선 def hello_world(request): if request.user.is_authenticated: if request.method == "POST": temp = re.. 2023. 5. 15.