묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
vscode에서 command not found:docker라고 나옵니다
깃허브에서 다운받고 vscode에서 터미널을 열고 docker ps를 쳤는데 저런식으로 나옵니다 혹시 깃허브에서 다운받는거 외에 별도로 건들여줘야할 설정같은게 있을까요?docker,파이썬 같은 확장프로그램은 설치했습니다
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
0.0.0.0:8000에서 안되고 localhost:8000 에서 동작하는 이유는 뭘까요?
git에서 app 프로젝트 받아서docker 깔고 docker compose build / docker compose up 하면0.0.0.0:8000에서 안되고127.0.0.1:8000 에서 동작하는 것 같은데 제가 뭘 빼먹은걸까요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
현업에서 환경변수 같은 건 어떻게 관리하시나요?
민감한 URL 이라든지 환경변수를 통해 사용하고 싶은게 있을 때강사님께서는 어떻게 관리하시는지 궁금합니다.그냥 UNIX 환경에서 export url = http://example.com 이런식으로 하고os 모듈을 통해 쓰고있는데, 더 보안상 좋은 방법이 있을까요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
VSCode Django-html 상태에서 inline-css 자동완성이 혹시 되시나요?
inline으로 css를 적용하려고 하니까, 자동완성이 안돼서 불편한데, 방법을 찾아봐도 모르겠어서 여쭈어봅니다.
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
import 오류
path('signup/', views.SignUpView.as_view(), name='signup'),이 부분에서 from . import views가 되지 않아 오류가 생기는 것 같습니다 왜 오류인지 잘 모르겠습니다 ImportError: cannot import name 'views' from 'dealershop' (/Users/minjiwon/Desktop/py/dealershop/dealershop/__init__.py)inventory 에서는 from . import views를 해도 잘 되는데 저쪽 부분에서만 되질 않습니다
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
form.save() 부분이 안돼요
Internal Server Error: /polls/survey/Traceback (most recent call last): File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 328, in execute return super().execute(query, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^sqlite3.OperationalError: no such table: polls_surveyThe above exception was the direct cause of the following exception:Traceback (most recent call last): File "/opt/homebrew/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in getresponse response = wrapped_callback(request, callback_args, *callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/minjiwon/Desktop/py/mysite/polls/views.py", line 98, in survey form.save() File "/opt/homebrew/lib/python3.11/site-packages/django/forms/models.py", line 542, in save self.instance.save() File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/base.py", line 814, in save self.save_base( File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/base.py", line 877, in save_base updated = self._save_table( ^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/base.py", line 1020, in savetable results = self._do_insert( ^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/base.py", line 1061, in doinsert return manager._insert( ^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/query.py", line 1805, in _insert return query.get_compiler(using=using).execute_sql(returning_fields) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1822, in execute_sql cursor.execute(sql, params) File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/utils.py", line 102, in execute return super().execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in executewith_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/homebrew/lib/python3.11/site-packages/django/db/utils.py", line 91, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 328, in execute return super().execute(query, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^django.db.utils.OperationalError: no such table: polls_survey[05/Jul/2023 05:30:34] "POST /polls/survey/ HTTP/1.1" 500 141650 이렇게 뜨면서 안되고 어드민에서 survey 들어가는 것도 안되는데 makemigrations 다시 해봐도 똑같아요
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
fly.io
fly.io로 배포중에 지역선택한 이후에Error: We need your payment information to continue! Add a credit card or buy credit: https://fly.io/dashboard/camel-769/billing이러한 에러가 떴는데 현재는 유료 서비스인건가요?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
CharField 테이블 안넘어오는 문제
class Car(models.Model): brand = models.CharField('brand', max_length=200), model = models.CharField('model', max_length=200, default=''), color = models.CharField('color', max_length=200), year = models.IntegerField('year', default=1900) 이렇게 모델을 적었는데 integerField의 테이블만 db에 생성되고 CharField table은 넘어오지 않습니다 뭐가 문제인걸까요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
detail.html에서 choice를 뿌려주는 데, 어느 부분에서 Choice객체가 Question객체에 의존하는지 모르겠어요.
{% for choice in question.choice_set.all %} <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}"> <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br> {% endfor %}detail.html에서 question.choice_set.all 로 각 choice를 li로 뿌려주는데어는 부분에서 Question 객체가 Choice객체를 의존하게 되는지 모르겠어요.model안에 있는class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) 이 부분인가요? 언뜻 Question 객체에서 question이란 객체변수로 Choice 객체를 받아줘야 할 것 같은데 말이죠. 그래야, question.choice라는 식으로 접근할 수 있을테니까요? 여기는 Choice객체 안이라서 좀 햇갈립니다. ㅎ아니면 저렇게 ForeignKey를 설정하면, 내부적으로 Question객체에 Choice객체가 의존하게 되나요?잘 몰라서 이상한 질문 드리는 것 같네요 ㅎ
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
강의자료는 어디서 볼 수 있을까요?
canva.com에 강의자료를 올려두시고 설명해주시는데,해당 자료는 어디서 볼 수 있을까요?강의자료에 필기를 하면서 공부하고 싶은데, 어떻게 내려받거나 볼 수 있는지 몰라 여쭙습니다.고맙습니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
혹시 이런 부분을 코드자동 완성이나 suggestion 해주는 확장프로그램 아시나요?
return render(reqeust, "polls/detail.html", {"qustion": question}) 에서 키값인 question을 qustion으로 오타내서 애러가 났었거든요. vscode에서 이 부분을 자동 완성해주는 프로그램이 있을까요? import되는 부분이 아니라서, vscode입장에서 알기 어려울 것 같기도 하네요. 프로그램이 커지면, 이거 찾다가 시간 굉장히 보낼 것 같다는 두려움이 생기네요 ㅎ
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
database is locked.
sqliteBrowser 사용하는 수업에서 db.sqlite3를 열려고 하니, database is locked 라는 메시지가 뜹니다.그래서 ChatGPT나 Bard... Googling을 이용해봤지만, 저에게 해당될만한 내용이 없네요. 혹시 몰라 재부팅도 해봤습니다. 이거 DB부분만 지웠다가 다시 까는 방법이 있을까요?(makemigrations, migrate 부분)
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
(wsl2-ubuntu에) docker/django 설치 방법과 환경설정이 강의화면에 나오지 않아 헤매고 있습니다. ㅠㅜ
(wsl2-ubuntu에) docker/django 설치 방법과 환경설정이 강의화면에 나오지 않아 헤매고 있습니다. ㅠㅜ
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
장고 모델 임포트
안녕하세요, 수업 다시 보면서 복습하고 있습니다. 기초부터 고급까지 파이썬 강의도 보면서 공부하고 있는데 클래스 임포트 관련해서 궁금한 점이 있습니다.from django.db import models 이게 잘 이해가 안가요 ㅠㅠ 기초 파이썬 강의에서 from 뒤에는 파일이나 모듈, import 뒤에는 클래스나 변수가 온다고 이해했는데요. models가 일단 클래스나 변수는 아닌 것 같고, 파일 같은데 from django.db import models 이렇게 쓰는 이유가 뭘까요..?import django.db.models 이렇게 쓸 수도 있나요? 답변 해주시면 감사하게 공부하도록 하겠습니다! ㅎㅎ
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
경로 관련 질문
<Django Template(템플릿)에 대한 소개>에서 하얀색 칠한 부분이 views.py에서 작성한 코드이기 때문에 경로상 templates/polls/main.html이 맞는것이 아닌지요?근데 그렇게 돌려보니 error가 뜨더라구요경로가 templates없이 지정되었음에도 불구하고 에러가 나지 않는 이유가 궁금합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
docker compose up과정에서 module not found error발생
docker compose up에서 아래와 같은 오류가 발생하였습니다. member 라는 모듈을 찾을 수 없다고 하는데 어떻게 해야될지 문의드립니다. +app/app/urls.py에서 member가 언급된 path를 주석처리하니 compose up이 돌아가긴 했습니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
is_valid()과정에서 validated_data에 데이터가 유실됩니다
안녕하세요? 이렇게 빨리 질문을 다시 드릴 줄 몰랐네요 ㅠㅠ is_valid()과정에서 데이터가 유실되는데, 도무지 이유를 모르겠어서 질문을 드립니다. view 부분은 다음과 같습니다 (편의를 위해data를 그냥 따로 만들었습니다. def perform_create(self, serializer): data = { 'delivery_location': 'test_location', 'delivery_date': '2022-10-10', 'orderedproducts': [ {'product_id': 3, 'count': 3}, {'product_id': 4, 'count': 3} ], } serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) print(serializer.validated_data) serializer.save() return serializer.data 여기서 print문의 결과로 다음과 같이 출력됩니다.orderedproducts내부에 있어야 할 product_id가 사라져 잇더라구요..아무리 검색해봐도 이유가 나오지 않아서 ㅠㅠ 한번 여쭈어 봅니다. OrderedDict([('delivery_location', 'test_location'), ('delivery_date', datetime.date(2022, 10, 10)), ('orderedproducts', [OrderedDict([('count', 3)]), OrderedDict([('count', 3)])])]) 혹시 몰라 시리얼라이저와 모델을 같이 적습니다. 시리얼라이저는 다음과 같습니다 class OrderedProductSerializer(serializers.ModelSerializer): product_name = serializers.CharField(source='product.product_name',read_only=True) class Meta: model = OrderedProduct fields = [ "product_id","count","product_name" ] class PackageOrderSerializer(serializers.ModelSerializer): orderedproducts = OrderedProductSerializer(many=True) class Meta: model = PackageOrder fields = [ "id","delivery_location","delivery_date","is_packaging", "orderedproducts" ] def create(self,validated_data): print("validated_data : ",validated_data) orderedproducts_data = validated_data.pop('orderedproducts') packageorder = PackageOrder.objects.create(**validated_data) for products_data in orderedproducts_data: OrderedProduct.objects.create(package_order=packageorder,**products_data) return packageorder 모델은 다음과 같습니다 #models.py class OrderedProduct(TimeStampedModel): package_order = models.ForeignKey('PackageOrder',on_delete=models.CASCADE,related_name='orderedproducts') product = models.ForeignKey('products.Product',on_delete=models.CASCADE) count = models.BigIntegerField() class Meta: db_table = 'ordered_products' class PackageOrder(TimeStampedModel): delivery_location = models.CharField(max_length=100) delivery_date = models.DateField() is_packaging = models.CharField(max_length=100, blank=True,null=True) class Meta: db_table = 'package_orders' OrderedProduct 모델이 다른 두개의 테이블을 참조하는 중간테이블처럼 사용되는 게 이유가 아닐까..짐작은 해보고 있습니다.. 정 안되면 body데이터를 pop을 활용해 빼내고 context를 통해 데이터를 전해주는 방식을 사용할까 고민중이긴 한데 정확한 이유는 알고 싶어서 질문 드립니다. 감사합니다~
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 선생님 DRF 대댓글에 대해서 질문드립니다!!
안녕하세요 선생님 DRF 대댓글에 대해서 질문드리려고 합니다. 제가 원하는 대댓글 구현은 계층형인데요 (물론 요즘은 잘 안쓰는걸로 알고있지만;;) 예를 들어 (reddit이랑 댓글 구현이 정확히 일치합니다!! -> 계층형 댓글로 구현이 되있습니다) 댓글 -대댓글 --대대댓글 --대대댓글 -대댓글 --대대댓글 댓글 -대댓글 -대댓글 댓글 ... 위와 같이 어떠한 포스트글에 댓글, 대댓글 전부 한번에 보이게 구현을 하고 싶은데 보통 대댓글도 결국 댓글이라서 self join하자나요? class Comment(TimestampedModel): author = models.ForeignKey(User, on_delete=models.CASCADE) post = models.ForeignKey(Post, on_delete=models.CASCADE, verbose_name='포스트 제목') message = models.TextField(verbose_name='댓글') parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True) 근데 문제는 pagination이 걸려 있다보니깐 어떠한 댓글에 대댓글, 대대댓글을 저렇게 정렬된 상태로 한번에 가져오는 방법이 떠오르지가 않네요; (댓글에 좋아요도 추가해서 정렬 알고리즘을 추가할 예정입니다) 그래서.. 1. pagination을 풀어서 어떠한 포스트에 댓글을 전부 response하고 클라이언트 단에서 정렬하라고 하는건지? (물론 당연히 DB 부담이 커서 처음엔 이 방법을 전혀 생각하고 있지 않았지만, 한편으로는 댓글은 많아봐야 몇천개라서 커버가 될 수있을까 ? 라는 막연한 생각이드네용) 2. 댓글 하나당 대댓글이 있는지 재귀적으로 요청해서 대댓글이 있으면 가져오고 없으면 넘어가는 식으로 구현? (물론 당연히 이것도 하나의 포스트에 여러번의 DB 요청을 하기 때문에 서버측에서 굉장히 부담이 커서 현실성이 매우 떨어짐) 위 두 방법은 좀 현실성이 떨어져서 좀 더 효과적으로 구현할 수 있는 방법이 있을것같은데 실력과 경험부족으로 떠오르지가 않네요... 혹시 위 처럼 계층형 대댓글을 구현하는데 좋은 로직이나 자료나 솔루션이 있을까요???? (프론트엔드는 코틀린입니다)
-
미해결Django REST Framework 핵심사항
DRF 1:N 참조 테이블 객체 매핑 POST
안녕하세요. 현재 drf 를 사용하여 api 개발을 공부중입니다. 현재 1:n 관계인 두개의 테이블에서 N측 테이블의 데이터를 저장할 때 기존에 존재하던 1측 테이블의 레코드와 관계를 생성하여 매핑하고자 합니다. 이런 저런 방법을 계속 시도하였으나 참조하는 테이블의 객체를 알맞게 매핑하는데 자꾸 실패하여 질문을 남깁니다. class Company(models.Model): company_name = models.CharField(max_length=30) nationality = models.CharField(max_length=20) region = models.CharField(max_length=40) class Recruitment(models.Model): company = models.ForeignKey(Company, on_delete=models.CASCADE) position = models.CharField(max_length=20) reward = models.IntegerField() info = models.TextField() skill = models.CharField(max_length=30) Company 모델과 이를 참조하는 Recruitment 모델입니다 class CompanySerializer(serializers.ModelSerializer): class Meta: model = Company fields = '__all__' class RecruitmentSerializer(serializers.ModelSerializer): company = CompanySerializer() class Meta: model = Recruitment fields = '__all__' depth = 1 각 모델의 serializer입니다, class RecruitmentListView(APIView): def post(self, request): company_obj = Company.objects.get(pk=request.data.get('company')['id']) #1. 참조하는 company 객체를 찾아 새로운 Recruitment 객체를 생성하고, company 객체를 연결지어 serialize한다 #2. RecruitmentSerializer의 is_valid 혹은 다른 메소드를 오버라이딩하여 request를 serializer로 전달하여 저장한다 #기타 등등 if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(status=status.HTTP_400_BAD_REQUEST) 공식 문서, 유튜브 영상, 외국 사이트등을 찾아보았지만 기존에 존재하던 테이블을 참조하며 새로운 객체를 저장하는 방법이 있질 않더군요... 혹시 해결 방법을 아시면 답변 부탁드리겠습니다. 참고로 request는 { "company": { "id": 1, "company_name": "company1", "nationality": "korea", "region": "seoul" }, "position": "백엔드", "reward": 100000, "info": "test", "skill": "django" } 이런식으로 생각하고 있습니다
-
미해결
DRF 객체 저장시 nested object 매핑 문제
안녕하세요. 현재 drf 를 사용하여 api 개발을 공부중입니다. 현재 1:n 관계인 두개의 테이블에서 N측 테이블의 데이터를 저장할 때 기존에 존재하던 1측 테이블의 레코드와 관계를 생성하여 매핑하고자 합니다. 이런 저런 방법을 계속 시도하였으나 참조하는 테이블의 객체를 알맞게 매핑하는데 자꾸 실패하여 질문을 남깁니다. class Company(models.Model): company_name = models.CharField(max_length=30) nationality = models.CharField(max_length=20) region = models.CharField(max_length=40) class Recruitment(models.Model): company = models.ForeignKey(Company, on_delete=models.CASCADE) position = models.CharField(max_length=20) reward = models.IntegerField() info = models.TextField() skill = models.CharField(max_length=30) Company 모델과 이를 참조하는 Recruitment 모델입니다 class CompanySerializer(serializers.ModelSerializer): class Meta: model = Company fields = '__all__' class RecruitmentSerializer(serializers.ModelSerializer): company = CompanySerializer() class Meta: model = Recruitment fields = '__all__' depth = 1 각 모델의 serializer입니다, class RecruitmentListView(APIView): def post(self, request): company_obj = Company.objects.get(pk=request.data.get('company')['id']) #1. 참조하는 company 객체를 찾아 새로운 Recruitment 객체를 생성하고, company 객체를 연결지어 serialize한다 #2. RecruitmentSerializer의 is_valid 혹은 다른 메소드를 오버라이딩하여 request를 serializer로 전달하여 저장한다 #기타 등등 if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(status=status.HTTP_400_BAD_REQUEST) 공식 문서, 유튜브 영상, 외국 사이트등을 찾아보았지만 기존에 존재하던 테이블을 참조하며 새로운 객체를 저장하는 방법이 있질 않더군요... 혹시 해결 방법을 아시면 답변 부탁드리겠습니다. 참고로 request는 { "company": { "id": 1, "company_name": "company1", "nationality": "korea", "region": "seoul" }, "position": "백엔드", "reward": 100000, "info": "test", "skill": "django" } 이런식으로 생각하고 있습니다