• 1403/04/21

خطای UnicodeEncodeError هنگام ارسال پیامک فارسی با کاوه نگار :

سلام استاد وقتتون بخیر

من هنگام رجیستر شماره موبایل رو میگیرم به اون شماره پیام ارسال میکنم از طریق سرویس کاوه نگار و متن مسیج پیام رو فارسی نوشتم بعد وقتی ثبت نام رو انجام میده با خطای یونیکد مواجه میشم ولی توی پنل کاوه نگارم استاتوس 200 میزنه ومیگه موفقیت امیز بوده و این ارور به متن مسیج api کاوه نگرام گیر میده 

from aria_complex_project.settings import Kavenegar_API
def send_otp(mobile, otp):
    mobile = [mobile, ]
    try:
        api = KavenegarAPI(Kavenegar_API)
        params = {
            'sender': '10008663',  # optional
            'receptor': mobile,  # multiple mobile number, split by comma
            'message': f'کد تایید شما : {str(otp)} \n مجموعه فرهنگی ورزشی آریا',
        }
        response = api.sms_send(params)
        print('otp: ', otp)
        print(response)
    except APIException as e:
        print(e)
    except HTTPException as e:
        print(e)

این هم ویو 

from account_module.models import MyUser
from .helper import send_otp, get_random_otp

class RegisterView(View):
    def get(self, request):
        register_form = RegisterForm()
        context = {
            'register_form': register_form
        }
        return render(request, 'account_module/register.html', context)

    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            mobile = register_form.cleaned_data.get('mobile')
            first_name = register_form.cleaned_data.get('first_name')
            last_name = register_form.cleaned_data.get('last_name')
            otp = get_random_otp()
            user = MyUser.objects.filter(mobile__iexact=mobile).exists()
            if user:
                register_form.add_error('mobile', '*شماره موبایل وارد شده تکراری می باشد')
            else:
                new_user = MyUser(
                    mobile=mobile,
                    first_name=first_name,
                    last_name=last_name,
                    is_active=False,
                    otp=otp
                )
                new_user.save()
                send_otp(mobile, otp)

                return redirect(reverse('activate_account_page'))


        context = {
            'register_form': register_form
        }
        return render(request, 'account_module/register.html', context)

اینم متن ارور 

  • 1403/04/23
  • ساعت 08:33

سلام دوست من

مشکل شما به دلیل استفاده از دستور print هستش

کاراکتر های فارسی توی خروجی چاپ نمیشن دوست من


  • 1403/04/23
  • ساعت 09:20

استاد خیلی ممنون خدا خیرتون بده شرمنده من انقدر سوال میپرسم مبتدی هستم خیلی لطف کردید مرسی که هوامونو دارید 


  • 1403/04/23
  • ساعت 09:27

خواهش میکنم دوست من

انجام وظیفه میکنم

موفق باشین :)