আমি এই সমস্যাটি দিয়ে বহুবার পেরিয়েছি, তবে আমি এটি সম্পর্কে আরও গভীরভাবে খোঁজ করার চেষ্টা করিনি। এখন আমি মূল বিষয়টি বুঝতে পারি।
এবার আমার সমস্যাটি বিভিন্ন মডিউল যেমন: নীচের মতো সিরিয়ালাইজার (জ্যাঙ্গো এবং পুনরায় ফ্রেমওয়ার্ক) আমদানি করছিল:
from rest_framework import serializers
from common import serializers as srlz
from prices import models as mdlpri
# the line below was the problem 'srlzprod'
from products import serializers as srlzprod
আমি এই জাতীয় সমস্যা হচ্ছিলাম:
from product import serializers as srlzprod
ModuleNotFoundError: No module named 'product'
আমি যা অর্জন করতে চেয়েছিলাম তা হ'ল:
class CampaignsProductsSerializers(srlz.DynamicFieldsModelSerializer):
bank_name = serializers.CharField(trim_whitespace=True,)
coupon_type = serializers.SerializerMethodField()
promotion_description = serializers.SerializerMethodField()
# the nested relation of the line below
product = srlzprod.ProductsSerializers(fields=['id','name',],read_only=True,)
সুতরাং, কীভাবে এটি সমাধান করবেন (শীর্ষ-স্তরের আমদানি) উপরে লাইনগুলি দ্বারা উল্লিখিত হয়েছে, আমি নিম্নলিখিত পরিবর্তনগুলি করতে এগিয়ে চলেছি:
# change
product = srlzprod.ProductsSerializers(fields=['id','name',],read_only=True,)
# by
product = serializers.SerializerMethodField()
# and create the following method and call from there the required serializer class
def get_product(self, obj):
from products import serializers as srlzprod
p_fields = ['id', 'name', ]
return srlzprod.ProductsSerializers(
obj.product, fields=p_fields, many=False,
).data
অতএব, জ্যাঙ্গো রানসরভার সমস্যা ছাড়াই কার্যকর করা হয়েছিল:
./project/settings/manage.py runserver 0:8002 --settings=settings_development_mlazo
Performing system checks...
System check identified no issues (0 silenced).
April 25, 2020 - 13:31:56
Django version 2.0.7, using settings 'settings_development_mlazo'
Starting development server at http://0:8002/
Quit the server with CONTROL-C.
কোড লাইনের চূড়ান্ত অবস্থাটি ছিল:
from rest_framework import serializers
from common import serializers as srlz
from prices import models as mdlpri
class CampaignsProductsSerializers(srlz.DynamicFieldsModelSerializer):
bank_name = serializers.CharField(trim_whitespace=True,)
coupon_type = serializers.SerializerMethodField()
promotion_description = serializers.SerializerMethodField()
product = serializers.SerializerMethodField()
class Meta:
model = mdlpri.CampaignsProducts
fields = '__all__'
def get_product(self, obj):
from products import serializers as srlzprod
p_fields = ['id', 'name', ]
return srlzprod.ProductsSerializers(
obj.product, fields=p_fields, many=False,
).data
আশা করি এটি অন্য সবার জন্য সহায়ক হতে পারে।
গ্রিটিংস,