python

Troubleshooting for Django

· John Doe

1030 Views

1) 장고 패스워드 재설정 시 이메일이 안보내지는 경우

패스워드 리셋 이메일은 active user(is_active가 true) 이면서 사용가능한 패스워드가 설정되어 있는 유저인 경우(has_usable_password 도 true) 에만 전송이 된다.

즉 gmail이나 네이버 oauth 등으로 가입한 유저의 경우에는 패스워드를 직접 타이핑하여 설정한 경우가 아니기에 패스워드 리셋 이메일이 안 보내지는 것이다.

아무 오류도 안뜨고 마치 전송된 것처럼 나올 수 있으므로 주의.

I am using the Django password reset. I have this code in my settings.py: EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'myusername@gmail.com'

 

2) 장고 특정 app에 다국어 추가

1. 해당 app에 locale 폴더를 만든다.

2. 가상경로에서 해당 app 경로로 이동

3. 다음 명령을 실행

django-admin makemessages -l ja

4. 컴파일

django-admin compilemessages
I have the following structure: . ├── apps │   ├── app1 │ │ ├── app1 │ │ └── setup.py │   ├── app2 │ │ ├── app2 │ │ └── setup.py ├── my_django_project │   ├── appA │   ├── appB │  ...

 

3) requirements.txt 를 통한 패키지 종속성 관리

현재 환경에서 설치한 패키지 확인

pip freeze

설치한 패키지 목록을 파일에 담기

pip freeze > requirements.txt

패키지 설치

pip install -r requirements.txt

ssl 오류가 발생할 경우에는

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -r requirements.txt

 

4) django management 시스템 안에서 내 명령어 만들고 사용하기

app들을 import하여 만든 코드를 서버시작없이 콘솔에서 테스트 또는 실행하고 싶을 때 유용함.

그냥 Run 해버리면 import된 모듈을 찾을 수 없다고 나온다.

shell 명령을 쓰지않아도 되어서 편하다

1. 폴더구조를 아래와같이 만들어야 한다

$ tree CallCenter
 
├── admin.py
├── apps.py
├── __init__.py
├── management
│   └── commands

2. 이제 commands 폴더 안에 내가 쓰고자 하는 명령어의 이름으로 python 파일을 작정한다

여기서는 make_call.py

CallCenter/management/commands/make_call.py

from twilio.rest import Client
from twilio.twiml.voice_response import VoiceResponse, Say, Dial, Number, VoiceResponse
from CallCenter.models import Campaign
 
from django.core.management import BaseCommand
 
 
def create_xml(campaign):
    # Creates XML
    response = VoiceResponse()
    response.say(campaign.campaign_text)
    return response
 
 
class Command(BaseCommand):
    def add_arguments(self, parser):
        parser.add_argument("--campaign-id", required=True, type=int)
 
    def handle(self, campaign_id, **options):
        campaign = Campaign.objects.get(pk=campaign_id)
        xml = create_xml(campaign)
        print(xml)

3. 아래와 같이 실행하면 된다

$ python manage.py make_call --campaign-id=1
I am new to Django, and I'm trying to import one of my models in a script as we do it in views.py. I'm getting an error: Traceback (most recent call last): File "CallCenter\make_call.py", line ...

 

5) django를 이용한 소셜 로그인

소셜로그인의 양대산맥:

Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication. - GitHub - pennersr/django-allauth: Integrate...
Python Social Auth - Application - Django. Contribute to python-social-auth/social-app-django development by creating an account on GitHub.

app을 등록한 후 사용하면 된다

트위터: Twitter Developers

 
JavaScript is not available. We’ve detected that JavaScript is disabled in this browser. Please enable JavaScript or switch to a supported browser to continue using twitter.com. You can see a list of supported browsers in our Help Center. Help Center Term

네이버: 애플리케이션 - NAVER Developers

네이버로 연동된 app목록은 여기서 확인가능 Apps : NAVER Account

네이버에 로그인 하고 나를 위한 다양한 서비스를 이용해 보세요

구글: https://console.developers.google.com/apis/dashboard

Sign into continue to Google Cloud PlatformEmail or phoneForgot email?Type the text you hear or seeNot your computer? Use Guest mode to sign in privately. Learn moreNextCreate account

이중 가장 까다로웠던건 네이버연동.

첨에 신청했다가 어떤목적 사이트인지 기술안했다고 반려당하고

가입시 선택사항으로 이름을 넣어놨는데 사용목적이 안나왔다고 반려당하고 선택사항삭제하고

별명을 필수로 넣었는데 어디에 쓰이는지 알수없다고해서 캡쳐후 재신청하고

검수 승인까지 좀 걸렸었다.

django