بررسی مدرس

  1. 0 از 5

    سلام وقت شما بخیر . طبق متن خطا شما بعد از نصب nodejs در هنگام نصب ابزاری به اسم Chocolaty یا choco با مشکل مواجه شدید . احتمالا با انجام این تنظیمات (+)مشکل برطرف میشه . اما اگر که باز هم نشد میتونید خوده choco رو به صورت جداگانه از وب سایت رسمی Chocolatey.org دریافت و نصب کنید . بعد از نصب دوباره nodejs رو نصب کنید . پی نوشت : برای مطالعه بیشتر که Choco چه کاربردی در nodejs داره توصیه میکنم این لینک رو یه نگاهی بندازید .Choco in nodejs ( + ) برای مطالعه درباره خود ابزار choco هم این لینک رو پیشنهاد میکنم why choco ( + )

  2. 0 از 5

    سلام استاد . من بسته آموزش ساخت فروشگاه با جنگو و ری اکت تهیه کردم . دریکی از درس ها برای نصب nodejs موقع نصب ابزارها با این Error مواجه شدم لطفا راهنمایی بفرمایید. Chocolatey has implemented security safeguards in their process to help protect the community from malicious or pirated software, but any use of this script is at your own risk. Please read the Chocolatey's legal terms of use as well as how the community repository for Chocolatey.org is maintained. Press any key to continue . . . Exception calling "DownloadString" with "1" argument(s): "The remote name could not be resolved: 'chocolatey.org'" At line:1 char:82 + ... pe]::Tls12; iex ((New-Object System.Net.WebClient).DownloadString('ht ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : WebException choco : The term 'choco' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:176 + ... .DownloadString('https://chocolatey.org/install.ps1')); choco upgrade ... + ~~~~~ + CategoryInfo : ObjectNotFound: (choco:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException Type ENTER to exit:

  3. 5 از 5

    خیلی بسته خوبی شده و من شاهد بودم که چقدر از شما انرژی گرفت. دست مریزاد.

  4. 5 از 5

    خیلی زحمت برده این فصل. به دو روش هم دپلوی رو گفتین و با شجاعت مشکلاتی که خودتون برخورد کردین رو هم به کاربر نشون دادین. دم شما گرم و امیدوارم که این آموزش برای خودتون و برای فراگیران باعث رویش مادی و معنوی باشه.

  5. 0 از 5

    سلام وقت شما بخیر . ببینید اگر که کلا عکس ها لود نمیشن چه در صفحه محصولات و چه در صفحه جزئیات هر محصول احتمالا شما این media_url رو به url اصلی پروژه اضافه نکردید . from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) اگر که این رو در فایل urls.py اصلی پروژه اضافه کردید و باز هم عکس ها لود نمیشن احتمالا مسیر رو درست معرفی نکردید . ولی من احتمال میدم مشکل از همین باشه . حالا باز اگر که مشکلتون حل نشد . کدتون رو پوش کنید رو گیت هاب تا بتونیم ببینیم و روش فکر کنیم .

  6. 4 از 5

    با سلام . سوالم مربوط به فصل 2 این اموزش هست.من طبق پروژه آموزشی پیش رفتم زمانی که اطلاعات product از سمت سرور میگیریم همه اطلاعات از سمت سرور میاد بجز عکس .تنظیمات رو هم طبق آموزش زدم فایل static و پوشه images تشکیل میشه، عکس هم داخل پوشه آپلود میشه ولی بازم این خطا رو دارم GET http://localhost:3000/images/mouse-logitech.jpg 404 (Not Found) به نظر شما مشکل کجاست؟؟

  7. 0 از 5

    سلام وقتتون بخیر امیدوارم فصل جدید هر چه زودتر منتشر بشه.

  8. 0 از 5

    سلام وقت شما بخیر. عذرخواهی میکنم که پاسختون دیر شد . پارامتر match در واقع برای دریافت path variable از url بود . به این صورت که مثلا macth.params.id مقدار متغیر id که در path تعریف کرده بودیم رو به ما برمیگردونه . ظاهرا این ویژگی در ورژن ۱۸ تغییر کرده همونطور که شما به خطا خوردید . باید به این صورت عمل بشه که در هر صفحه ای یا هر قسمتی از کد که خواستید از path variable استفاده کنید ابتدا باید هوک useParams رو از react-router-dom ایمپورت کنید تا بتونید با استفاده از این هوک به متغیرهایی که در path تعریف کردید دسترسی داشته باشید . مثلا میخوایم به متغیر id دسترسی داشته باشیم ابتدا ایمپورت رو انجام میدم . ( import { useParams } from 'react-router-dom'; ) و بعد با استفاده از هوک useParams متغیر رو صدا میزنم . به این صورت ( let { id } = useParams(); ) البته که داخل تابع مورد نظر باید این کار رو انجام بدید . برای مطالعه بیشتر هم یه سری به این لینک ها بزنید . useParams_1 useParams_2 useParams_3

  9. 5 از 5

    سلام من از reactورژن18 استفاده میکنم جزِئیات محصول را نشان نمی دهد پیامmatch تعریف نشده را میدهد راهنمایی بفرمائید

  10. 5 از 5

    سلام خسته نباشید من ی سوال داشتم چجوری به orderid در سمت کلایت دسترسی پیدا کردید id پیشفرض جنگو

  11. 5 از 5

    سلام بنده در پروژه خود به مشکل خوردم و وقتی میخوام api بزنم به درگاه بانکی در مرحله اول به من the id pay server was established که خودمان نوشتیم بر میگرداند و بادرگاه ارتباط برقرار نمیکند این کد views.py:from django.shortcuts import render from .serializer import ProductSerializer, Topsellsserializer, separserializer, headlightserializer, lentserializer, radiatorserializer from .models import Products, TopSells, lent, radiator, Separ, headlight, Order from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.decorators import api_view from rest_framework import status from product.utils.pay_utils import idpaycreatedb, idpaycreatepay class GetListProduct(APIView): def get(self, request): products = Products.objects.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data) class Getproduct(APIView): def get(self, request, brand): comment = Products.objects.get(brand=brand) serializer = ProductSerializer(comment) return Response(serializer.data) class Topsellsviews(APIView): def get(self, request): topsellsproduct = TopSells.objects.all() serializer = Topsellsserializer(topsellsproduct, many=True) return Response(serializer.data) class Separview(APIView): def get(self, request): separsproduct = Separ.objects.all() serializer = separserializer(separsproduct, many=True) return Response(serializer.data) class Radiatorview(APIView): def get(self, request): radiatorsproduct = radiator.objects.all() serializer = radiatorserializer(radiatorsproduct, many=True) return Response(serializer.data) class Lentview(APIView): def get(self, request): lentsproduct = lent.objects.all() serializer = lentserializer(lentsproduct, many=True) return Response(serializer.data) class Headlightview(APIView): def get(self, request): headlightsproduct = headlight.objects.all() serializer = headlightserializer(headlightsproduct, many=True) return Response(serializer.data) class Getdetailproduct(APIView): def get(self, request, productid): detail = Products.objects.get(productid=productid) serializer = ProductSerializer(detail) return Response(serializer.data) @api_view(['GET']) def payorder(request, pk): user = request.user try: order = Order.objects.get(_id=pk) except Order.DoesNotExist: return Response({'detail': 'order not found !'}, status=status.HTTP_404_NOT_FOUND) else: if order.is_paid: return Response({'detail': 'order already paid !'}, status=status.HTTP_400_BAD_REQUEST) else: try: response = idpaycreatepay(user, order) except: return Response({'detail': 'the id pay server connection was established !'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) else: if(str(response.status_code).startswith('2')): resjson = response.json() if(idpaycreatedb(user, order, resjson['id'])): return Response(resjson, status=status.HTTP_200_OK) else: return Response({'detail': 'db error!'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) و این کد pay utils است:import requests, json from product.models import IdPay IDPAYHEADER = { 'Content-Type' : 'application/json', 'X-API-KEY': '4bde5a4e-c640-4f95-adc0-39761d15e3d9', 'X-SANDBOX': '1', } def idpaycreatepay(order): body = { 'order_id' : str(order._id), 'amount' : int(order.totalprice * 10), 'callback' : 'http://127.0.0.1:8000/api/v1/air/result/', } response = requests.post( "https://api.idpay.ir/v1.1/payment", data=json.dumps(body), headers = IDPAYHEADER, ) return response def idpaycreatedb(user, order, id): try: idpay = IdPay.objects.create( user = user, order = order, transId = id, lastStatus = 0, amountCreate = (order.totalprice * 10), ) return True except: return False

  12. 0 از 5

    سلام و ممنون از اطلاعتون. برای تولید گذرواژه برای بخش EMAIL_HOST_PASSWORD با توجه به تغییرات گوگل و حذف less security app می بایست با استفاده از توضیحات صفحه app password (+) اقدام به تولید گذرواژه ویژه اپ کنیدکه می تونه به جای گذرواژه واقعی به کار گرفته بشه.

  13. 0 از 5

    (مهمان)

    سلام به تازگی گوگل less security app را ریمو کرد. برای ارسال ایمیل چکار باید کرد؟

  14. 5 از 5

    سلام دوره خوبی بود منتظر فصل بعدی هستم

  15. 0 از 5

    سلام وقت شما بخیر اقای دهقان . خدا رو شکر که مشکلتون حل شد . بله کاملا درست میفرمایید از این به بعد نامگذاری متغیر ها رو با وسواس و دقت بیشتری انجام میدم . خیلی ممنون از شما ❤❤.

  16. 5 از 5

    سلام مجدد و تشکر از پاسخ گویی شما بله موضوع قبلی حل شد این مشکل بنده هم حل شد اگر امکان داشته باشه تو نامگذاری متغییر ها کمی وسواس بیشتر به خرج بدید برای مثال شما userLogin رو هم توی انبار و هم توی کلاس تعریف کردید و واقعا راه رو برای مهندسی معکوس یا درک دقیق مطلب پیچیده تر می کنه مخصوصا برای ما پیر مرد های دات نت کار :) از وقتی که گذاشتید ممنونم :)

  17. 0 از 5

    سلام آقای دهقان وقت شما هم بخیر . اگر که منظورتون رو درست متوجه شده باشم ، این کد رو ما در فایل loginScreen.js نوشتیم ( این تا اینجا ). در واقع با این کد ما اون کلیدهایی که در انبار ریداکس تعریف کرده بودیم ( تابع ریدوسر userLoginReducer کلید ها رو اینجا تعریف کردیم )، داریم واکشی میکنیم که ببینیم چه مقدارهایی دارند تا مثلا اگر که loading مقدارش true هست ، یه انیمیشن به نشانه بارگذاری نمایش بدیم . یا مثلا اگر که userInfo مقدار درست داره ( یعنی توکن داره ، اسم و نام کاربری داره و.... ) اون وقت یعنی کاربر لاگین کرده . یا اگر که error مقدار داره یعنی در حین ورود ( درواقع منظور از ورود اینجا دریافت access و refresh توکن هستش ) به مشکل خورده و اون وقت باید یه پیام مناسب بهش نمایش بدیم . state رو هم ما یه متغیر به تابع useSelector میدیم ( شما اینجوری تصور کنید ) بعد این کل انبار ریداکس رو میریزه داخل این متغیر بعد اون موقع با اون کلیدی که توی انبار ذخیرش کردیم داخل فایل store.js به واسطه این متغیر خیلی راحت تر میتونیم صداش بزنیم . اصلا میتونه به این صورت باشه useSelector(x => x.userLogin) هیچ تفاوتی نداره ولی خب ما به جای x ، state رو پاس دادیم تا کدمون تمیز و خوانا باشه . دلیل نوشتنش همین بود . پی نوشت : مشکل قبلی تون حل شد ؟؟

  18. 5 از 5

    سلام روز به خیر const userLogin=useSelector(state =>state.userLogin) const {error,userInfo,loading}=userLogin استاد واقعا من هر کاری کردم هرچقد آموزش رو نگاه کردم حتی مهندسی معکوس کردم متوجه نشدم این دو خط رو از کجا آوردید میشه خواهش کنم بفرمایید error userInfo oading userLogin state منظورتون از تمام این کلمات را بفرمایید؟ سپاس

  19. 0 از 5

    سلام اقای دهقان وقت شما بخیر . اول از همه اینکه خیلی عذرخواهی میکنم جوابتون دیر شد و دوم اینکه ما username password رو که ارسال میکنیم تا access , refresh token دریافت کنیم باید با کلید های username , password باشه . یکی از مشکلات میتونه از اینجا باشه الان شما به این شکل نوشتید {'UserName':UserName,'UserPassword':UserPassword}, باید تبدیل به این حالت بشه {'username':username, 'password':password} شما این حالت رو هم بررسی کنید اگر درست نشد کدتون رو روی گیت هاب قرار بدید و لینکش رو اینجا قرار بدید تا بررسی کنم . این لینک هم میتونه به شما کمک کنه .

  20. 5 از 5

    سلام استاد گرامی با تشکر از زحمات شما و تشکر از شما این کد مربوط به POST هست که در action نوشتم dispatch({type: USER_LOGIN_REQUEST}) const config={header:{'Content-type':'application/json'}} const { data } = await axios.post ( 'http://172.16.45.198/api/Users/UserLogin', {'UserName':UserName,'UserPassword':UserPassword}, config, ) dispatch({ type:USER_LOGIN_SUCCESS, payload :data, }) قبلش عرض میکنم که در بخش GET هیچ مشکلی ندارم ولی در این بخش با خطای NETWORK ERROR مواجه میشم نکته: من این درخواست رو در پستمن تست کردم و خطایی نداشتم