장고25 점프 투 장고. 실습한 소스 forms.py 모델폼 상속해서 폼 만든 후, 뷰에서 임포트. QuestionForm(request.POST, instance=question) messages.error(request, '에러') forms.py from django import forms from b2b.models import Question, Answer # forms.Form 과 forms.ModelForm class QuestionForm(forms.ModelForm): class Meta: model = Question fields = ['subject', 'content'] labels = { 'subject': '제목', 'content': '내용', } class AnswerForm(forms.ModelForm): cl.. 장고/점프투장고 2023. 11. 18. 회원가입 폼 (부트스트랩) https://7942yongdae.tistory.com/86 장고/점프투장고 2023. 11. 16. 회원 가입view - 글쓴이 추가(모델에 fk 추가) forms.py signup.html views.py def signup(request): 회원 가입 링크 navbar.html {% if not user.is_authenticated %} 회원가입 {% endif %} common/urls.py path('', '회원가입뷰 클래스or함수', name='signup'), from django.contrib.auth import views as auth_views from . import views app_name = 'common' urlpatterns = [ ....... path('signup/', views.signup, name='signup'), ] 회원가입폼UserForm 필요 common/forms.py 필요한 import 모듈은? 필요한 .. 장고/점프투장고 2023. 11. 16. 댓글 수: {% if question.answer_set.count > 0 %} {% if question_list %} {% for question in question_list %} {{ question_list.paginator.count|sub:question_list.start_index|sub:forloop.counter0|add:1 }} {{ question.subject }} {% if question.answer_set.count > 0 %} {{ question.answer_set.count }} {% endif %} {{ question.create_date }} {% endfor %} 장고/점프투장고 2023. 11. 15. 로그인 로그아웃 구현 + 리다이렉트 URL ( config/urls.py ) 03-5 로그인/로그아웃 구현 django.contrib.auth 앱 이용 공통으로 사용되는 기능인 로그인이나 로그아웃을 이 중의 하나의 앱에 종속시키는 것은 좋지 않기 때문이다. 이러한 이유로 여기서는 로그인 · 로그아웃을 "공통 기능을 가진 앱"이라는 의미의 common 앱에 구현할 것이다 common 앱 생성! config/settings.py 에 로그인/아웃 후 이동할 페이지 등록 로그인 url 매핑 로그인 템플릿 만들기 : common/login.html form_errors.html 로그 아웃 및 로그아웃 후 이동할 페이지. LOGIN_REDIRET_URL = '/' urls.py 의 urlpatterns 에 views 의 클래스.as_view() 또는 함수를 등록한다. config/urls... 장고/점프투장고 2023. 11. 15. urls.py <int:pk> <------- views.py : redirect(___, pk=question.id) NoReverseMatch Reverse for 'detail' with arguments '()' and keyword arguments '{} not found. url path 에서 받을 매개변수 pk -------------------- redirect 에서 전달될 곳(pk) 를 잘못 사용한 예. pk 를 뺏으면 문제 없었을 것. 장고/점프투장고 2023. 11. 14. 폼 에러 표시. class , form.errors/field.label/field.errors 폼 에러 표시. form 안에 {% if form.errors %} 를 넣어서, 빈 필드가 있을 경우, submit 이 되지 않게 한다. https://wikidocs.net/70855#_4 2-10 폼 * `[완성 소스]` : [github.com/pahkey/jump2django/tree/2-10](https://github.com/pahkey/jump2django/tree/… wikidocs.net 핑크박스 div class = "alert alert-danger" role = "alert" {% if form.errors %} field.label ---------------- 답변내용 (forms.py 의 label ) field.errors ----------------- 필수 항목입니다. {.. 장고/점프투장고 2023. 11. 13. forms.py 에서 폼디자인( form.as_p 폼위젯, 수동폼 사용) 0. views context 와 return render() 들여쓰기 주의!!!! def question_create(request): form = POST 입력받은 폼 / 빈 폼 저장. context = {'form': form} return render() {{ form.as_p }} 는 html 코드가 자동 생성되므로, 디자인 측면에서 제한이 많다. 수동폼으로 1. 폼 위젯과 레이블 class QuestionForm(forms.ModelForm): class Meta: model = Question fields = ['subject', 'content'] # widgets = { # 'subject': forms.TextInput(attrs={'class': 'form-control'}), # '.. 장고/점프투장고 2023. 11. 12. 테이블 모양 / 부트스트랩 https://getbootstrap.com/docs/5.1/getting-started/introduction/ IntroductionGet started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with jsDelivr and a template starter page.getbootstrap.com {% load static %}{% if question_list %} 출발일 상품번호 상품명 출발확정 .. 장고/점프투장고 2023. 11. 12. settings.py : templates , static, media_url TEMPLATES 'DIRS': [BASE_DIR/'templates'], STATIC_DIR 과 URL STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / 'static', ] MEDIA_ROOT 와 MEDIA_URL # 미디어 파일의 경로 설정 MEDIA_ROOT = os.path.join(BASE_DIR, "uploads") MEDIA_URL = "/media/" # 앞에 /를 더하면 절대 경로로 바뀐다. # 127.0.0.1:8000/media/room_photos/1.jpg # 만약 /를 안 붙이면, 내가 이 파일에 접속할 때 상대경로로 URL이 생성된다. -> 지저분해진다. # 127.0.0.1:8000/admin/rooms/photo/1/cha.. 장고/점프투장고 2023. 11. 12. 폼 + 상품의 총 구매수 {{ q.answer_set.count }} 출력 댓글 등록은 상품 예약하기와 같다. 2가지 방법 1) q.answer_set.create(subject=request.POST.get('subject') .............. ) Answer 객체를 사용하지 않기 때문에, save() 메소드를 사용하지 않는다. def answer_create(request, question_id): q = get_object_or_404(Question, pk=question_id) q.answer_set.create(subject = request.POST.get('subject'), content = request.POST.get('content'), create_date=timezone.now()) return redirect('b2b:detail', q.id.. 장고/점프투장고 2023. 11. 12. NoReverseMatch at /b2b/2/ Reverse for '....' with arguments 오류 NoReverseMatch at /b2b/2/ Reverse for '....' with arguments 오류 템플릿에 url 태그 사용하면, 전달할 인자가 잘못 됐다는 말. Reverse for 'answer_create' with arguments '('',)' not found. 장고/점프투장고 2023. 11. 12. url 네임스페이스(app_name) 과 url 별칭. {% url '' , redirect 템플릿 페이지 링크 하드코딩-->url 태그로 바꾸기 하드코딩 : {{ question.subject }} {{ question.subject }} 파라미터명 전달 한 개의 파라미터를 전달할 경우에는 다음과 같이 사용했다. {% url 'detail' question.id %} 이 때 다음처럼 파라미터 명을 함께 사용할수 있다. {% url 'detail' question_id=question.id %} 만약 2개 이상의 파라미터를 사용해야 한다면 다음과 같이 공백 문자 이후에 덧 붙여주면 된다. {% url 'detail' question_id=question.id page=2 %} 여러개 의 앱이 있을 경우 있으니, url 네임스페이스 사용 redirect 함수와 URL 별칭 URL별칭은 템플릿 외에.. 장고/점프투장고 2023. 11. 12. 장고 템플릿 문법 https://docs.djangoproject.com/en/4.0/topics/templates/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com https://wikidocs.net/70736 2-04 조회와 템플릿 * `[완성 소스]` : [github.com/pahkey/jump2django/tree/2-04](https://github.com/pahkey/jump2django/tree/… wikidocs.net 장고/점프투장고 2023. 11. 12. 장고 objects 쿼리 조회/ 추가 / 수정 / 답글 / 답글 조회 https://docs.djangoproject.com/en/4.0/topics/db/queries/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com Question 수정 https://wikidocs.net/70650 2-02 모델 * `[완성 소스]` : [github.com/pahkey/jump2django/tree/2-02](https://github.com/pahkey/jump2django/tree/… wikidocs.net 이번에는 저장한 Question 데이터를 수정해 보자. 먼저 다음과 같이 id 값이 2인 데이터를 조회한다. >>> q = Question.objects.get(id=2) >.. 장고/점프투장고 2023. 11. 11. 점프 투 장고. 재실습 python manage.py sqlmigrate b2b 0001 python manage.py makemigrations migrate 하기 전에 쿼리문을 살펴볼 수 있다. (venv38) {0:30}~/github/tws ➭ python manage.py sqlmigrate b2b 0001 BEGIN; -- -- Create model Question -- CREATE TABLE "b2b_question" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "subject" varchar(200) NOT NULL, "content" text NOT NULL, "create_date" datetime NOT NULL); -- -- Create model Answer.. 장고/점프투장고 2023. 11. 11. 북마크. 즐겨찾기 앱으로 ... url , generic View https://github.com/nodo1014/bookmark GitHub - nodo1014/bookmark: 배프배프. Contribute to nodo1014/bookmark development by creating an account on GitHub.github.com urls.py Viewurl 패턴에 이름 지정해서, 템플릿파일에서 하이퍼 링크로 사용하고, reverse(' url 패턴 이름 ' )수정/삭제 후, 이동 페이지 지정하기==> success_url 또는 get_absolute_url(self)1) view 에 success_url = reverse_lazy('list') 2) 모델 에 get_absolute_url(self) 메서드reverse("url패턴이름", args=[.. 장고/중급_문법 2023. 11. 5. 김석훈_장고_vue 블로그 세팅. 시작 시작_설정 * VENV 를 따로 설정 vs 프로젝트 내부 생성 * 프로젝트 안에 있는 것이 더 좋지 않나 싶긴 한데... python 버전, 장고 버전 호환 테스트를 생각하면, 이렇게 외부에서 관리 하는 것이 더 좋은 것 같다. 다 완성된 후, 프로젝트에서 관리하는 것이 좋을 듯? VENV/venv3.8 pip install django==3.2.4 settings.py 1. templates 경로 설정 및 templates 디렉토리 생성 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], 2. DATABASE 경로 및 db 디렉토리 생성 (배포할 때 편하다.. 장고/김석훈_장고_vue 2023. 9. 2. 파이썬 에러 : ipython shell_plus 주피터노트북 실행 오류 INSTALLED_EXTENSIONS = metadata.entry_points().get('markdown.extensions', ()) AttributeError: 'EntryPoints' object has no attribute 'get' (venv) imac :: ~/github/django23 ‹main*› % !pip install importlib-metadata==4.13.0 1 ↵ (venv) imac :: ~/github/django23 ‹main*› % pip install --upgrade "ipython[all]" install importlib-metadata==4.13.0 INSTALLED_EXTENSIONS = metadata.entry_points().get('markdo.. 장고/DoIt장고 2023. 4. 20. Do it 장고 학습기 파이썬과 장고 기본은 뗀 후, 봐야할 교재다. 파이썬 기본 문법만 보면 할 수 있다는 것을 강조하는데, 말도 안돼... 정말 말도 안돼. 한글은 쉽지만, 한국어는 어렵다. 파이썬은 쉽지만, 장고는 어렵다. https://doitdjango.com/ Do It Django Do It Django 파이썬 진영의 가장 대표적인 웹프레임워크 중 하나인 django를 이용하여 여러분만의 블로그 사이트를 만들어보세요. doitdjango.com 완성 소스 파일 등록일 : 2021.01.06 다운수 : 0 실습 파일 1. 구글 드라이브로 내려받기 ▶ 구글 드라이브 바로가기(클릭) 2. 저자 깃허브에서 확인 실습별로 작성해야 할 코드를 확인할 수 있습니다. ▶ 저자 깃허브 바로가기(클릭) 정오표 책을 읽다가 오탈자를.. 장고/DoIt장고 2023. 4. 13. 파이썬 클래스 메서드의 첫 번째 매개변수는 반드시 self를 지정해야 한다. 메서드에서 인스턴스 접근시, 매개변수 self 를 반드시 붙여야한다. class Test: def test1(self): a = 'hello' 여기서 self는 java의 this와 똑같다. 생성자 class Person: def __init__(self): self.hello = '안녕하세요' def greeting(self): print(self.hello) james = Person() james.greeting() >>> 안녕하세요 __init(self)는 파이썬의 생성자다. 파이썬을 불러올 때 가장 먼저 들리는 메서드다. 그래서 hello안에 '안녕하세요'가 저장 될 수가 있다. greeting(self)는 메서드다. 기존 greet.. 장고/중급_문법 2023. 4. 9. 2021.5 장고 학습 실패 기록 파이썬 하면, 장고는 무조건 해야하니깐, 하기로 했다. 처음부터 장고할껄 -_-;; 책 서두 부분 학습계획표에 보면, 도전 30일 완성 : 하루에 한 시간씩 한 달만 공부하면 누구나 파이썬 웹 개발을 정복할 수 있습니다. 한 학기 강의용으로 16주 동안 계획,학습 해보세요. 현직 개발자라면 16일 안에 빠르게 학습해보세요. 하루에 한 시간. 30일. 즉, 30시간이면 """누구나""" 할 수 있다. ㅠㅠ 하루 8시간 공부하면, 4일이면, 누구나 할 수 있다는 난이도라는건가??? 개인 목표 뭐...하루 한 시간 책보고, 실습 서너시간을 말한 것이겠지 싶으면서, 그래도, 하루 풀타임으로 쓸 수 있는 상황이니깐, 그러면 넉넉잡고 일주일 안에 실습까지 1독을 하자.. 그리고, 비슷한 류 장고 책 (점프 투 장고.. 장고/배포(서버 nginx 도커) 2022. 9. 10. 장고걸스 : 파이썬 애니웨어 첫 배포[2022.7] http://jamukha.pythonanywhere.com/ Django Girls blog 2022년 7월 25일 10:24 오후 검색어 입력 Need help? Talk to us! 들어가며 설치하기 설치하기 (chromebook) 인터넷은 어떻게 작동할까요 Command Line 시작하기 Python 설치하기 코드 에디터 Python 시작하기 Django란 jamukha.pythonanywhere.com 소회 배포가 이렇게 어려울 줄 몰랐다. php 방식들처럼 ftp 로 올리고 땡일 줄 알았는데, 대부분의 입문 책들이 aws 나 기타 서비스를 기준으로 해설하는 이유가 있었다. 그냥 그렇게 따라하면 됐는데, 리눅스 홈서버와 나스를 운용하고 있어서 어떻게든 독자 배포를 목적으로 했는데, 상당히 많이 .. 장고/배포(서버 nginx 도커) 2022. 9. 10. Doit장고 학습 기록(2022.8) 약 630여 페이진데... 2021년 5월...실패 요약 파이썬이 대세고, 장고가 쉽고 좋다는 온갖 뽐뿌질에 야심차게 도전했다가....실패. 흑..ㅠㅠㅠㅠㅠ 상처는 컸다. 분명 쉽게 잘 씌여진책인데, 책을 보다보면 정말 어마어마한 정성을 들인 책이란 게 느껴진다. 저자들의 노고와 학습자에 대한 기대를 보면 미안해지는 마음에 나름 열심히 했는데 실패. 처음 약 20%는 무려 가장 기초적인 html css javascript 부트스트랩 까지 가볍지만, 정말 열심히 다룬다. 이건 정말 백화점이다. 고기를 잡는 방법을 가르쳐주고자 하는 저자들의 노고에 정말 경건해지는 책이였다. 처음 짧은 시간 동안 팍팍 나가다가, 어느 순간 급격하게 높아지는 난이도에 멘붕이 왔었다. 다시 정신차리고 봐도 안됐다. 아.... 무.. 장고/배포(서버 nginx 도커) 2022. 9. 10. 점프투장고(2022.8.14-8.21) 점프투장고(2022.8.14-8.21) ::: 학습기간 : 4.5일 + 배포 삽질 1.5일 작년에 실패한 후, 볼까말까했던 책인데 ... 다시 보길 잘했다. 되돌아보니, 장고로서는 가장 기본적이고 필수적인 내용을 다룬 좋은 책인 것 같다. 근데, 어렵긴 어렵다. +_+ 여기 있는 내용을 빠삭하게 하면, 다른 내용들은 쉽게 소화할 수 있을 것 같다. 8/14 일 점프투장고 이번엔 제대로 하기로 함. 8/15 월 ( 전에 어려워서 중단. ㅠ ) 비교적 빨리 진행되는거 보니 약간 늘긴 늘었나 보다. 부트스트랩, css 도 가급적 직접 쳐보기로. 폼 수작업. 페이지네이터에서 3-4시간 주화입마에 빠짐. 사실은 간단한 거였는데. ㅠㅠ 답변등록 학습하면서, foreignkey 에 등록할 때, 객체로 입력하는 것을 .. 장고/배포(서버 nginx 도커) 2022. 9. 10. 이전 1 다음