تگ / nginx
-
حل ارور 502 Bad Gateway برای Python و Gunicorn
زمان مطالعه: 2 دقیقه با سلام و درود، خیلی سریع میرم سر اصل مطلب، فرضیات ما این هست که شما از Gunicorn استفاده می کنید و به ارور NGINX 502 Bad Gateway برخورده اید. Gunicorn یکی…
می 5, 2021 -
حل مشکل 413 Request Entity Too Large در وردپرس و وب سرور Nginx
زمان مطالعه: 2 دقیقه با سلام و درود، اخیرا اقدام به نصب وردپرس روی سرور شخصی خودم کردم و از پنل هاست هایی مثل Cpanel استفاده نکردم و در نتیجه خودم وب سرور Nginx رو روی…
دسامبر 28, 2020 -
آموزش امن کردن Nginx با رمزگذاری Let’s Encrypt
زمان مطالعه: 4 دقیقه با نام خدا و سلام، اول از همه اینکه قبلا آموزش نصب Nginx روی بلاگ گذاشته شده، و در مورد بلاک سرورهای Nginx نیز جداگانه بحث شده بود. حالا نیز میخواهیم انجین…
نوامبر 17, 2020
..تبلیغات..
دستهها
- IDE (13)
- Android studio (9)
- pycharm (1)
- Visual Studio (3)
- sysadmin (15)
- ادمین سیستم – SysAdmin (27)
- برنامه نویسی (137)
- پایگاه داده (23)
- پردازش زبان طبیعی (3)
- دستهبندی نشده (3)
- سبک زندگی (24)
- سیستم عامل (50)
- Windows server 2012 (7)
- لینوکس (39)
- ubuntu (25)
- آموزش های مقدماتی (1)
- ویندوز (3)
- win 10 (3)
- مایکروسافت اکسل (1)
- محیط لینوکس (1)
- مهندسی نرم افزار (17)
- مستند سازی (2)
- وردپرس (1)
پرسش و پاسخ تصادفی
زمان مطالعه: < 1 دقیقهحل ارور Invalid data. Expected a dictionary, but got int.
خب مشکل کجاست؟ شما یه سریالایزر دارید، که مدل استفاده شده داخل سریالایزر شما یه کلید خارجی داره، بهنگام آپدیت کردن احتمالا به این مشکل برخوردید،
قدم اول احتمالا سریالایزر رو به صورت nested ساخته اید و در نتیجه بهنگام آپدیت کردن، فقط id اون کلید خارجی رو قبول نمیکنه و انتظار یه nested dictionary داره، راه حل خیلی ساده است، فقط کافیست یه سریالایزر جدید بسازید و serializers ها رو به دو دسته read و write تبدیل کنید تا به این مشکلات برنخورید.
به مثال زیر توجه کنید:
class HuntingDetailViewSerializer(serializers.ModelSerializer): species = HuntingSpeciesSerializer(many=True, read_only=True) technique = HuntingTechniqueTagSerializer() class Meta: model = HuntListing exclude = ('owner',)
شما سریالایزر بالا را دارید، داخل view نیز کد زیر را دارید:
listing_id = request.data.get('listing_id') listing = HuntListing.objects.get(id=listing_id) serializer = HuntingDetailViewSerializer(listing, data=request.data, partial=True) if serializer.is_valid(): serializer.save()
داده نمونه تون هم به صورت زیر هست :
{"listing_id":9, "technique":1, ....}
ولی ارور دارید به صورت زیر :
Invalid data. Expected a dictionary, but got int.
حل ارور:
فقط کافیست همان طور که گفته شد، serializer های readو write رو از هم جدا کنید، پس سریالایزر جدید داریم :
class HuntingDetailViewSerializer(serializers.ModelSerializer): species = HuntingSpeciesSerializer(many=True, read_only=True) class Meta: model = HuntListing exclude = ('owner',)
همان طور که ملاحظه کردید، خط زیر را حذف کردیم.
technique = HuntingTechniqueTagSerializer()
برچسبها
یا هر چقدر دوست داری از فرم زیر منو حمابت کن: