দয়া করে কেউ আমাকে সংশোধন করুন, তবে আমি অনুমান করি যে আমি একটি সমাধান পেয়েছি, কমপক্ষে আমার নিজের ক্ষেত্রে for
আমি সেই সমস্ত উপাদানগুলির সাথে কাজ করতে চাই যাদের সম্পত্তিগুলির সমান সমান ... যাই হোক না কেন।
তবে আমার বেশ কয়েকটি মডেল রয়েছে এবং এই রুটিনটি সমস্ত মডেলের জন্য কাজ করা উচিত। এবং এটি করে:
def selectByProperties(modelType, specify):
clause = "SELECT * from %s" % modelType._meta.db_table
if len(specify) > 0:
clause += " WHERE "
for field, eqvalue in specify.items():
clause += "%s = '%s' AND " % (field, eqvalue)
clause = clause [:-5]
print clause
return modelType.objects.raw(clause)
এই সার্বজনীন সাবরুটিনের সাহায্যে আমি সেই সমস্ত উপাদান নির্বাচন করতে পারি যা আমার নির্দিষ্ট 'নির্দিষ্ট' (সংখ্যার নাম, সম্পত্তি মূল্য) সংমিশ্রণের অভিধানের সমান।
প্রথম প্যারামিটারটি একটি (মডেল। মডেল) নেয়,
দ্বিতীয় অভিধানের মতো: {"সম্পত্তি1": "77", "সম্পত্তি 2": "12"}
এবং এটি একটি এসকিউএল বিবৃতি তৈরি করে
SELECT * from appname_modelname WHERE property1 = '77' AND property2 = '12'
এবং এই উপাদানগুলির উপর একটি কোয়েরি সেট দেয় returns
এটি একটি পরীক্ষার ফাংশন:
from myApp.models import myModel
def testSelectByProperties ():
specify = {"property1" : "77" , "property2" : "12"}
subset = selectByProperties(myModel, specify)
nameField = "property0"
for i in subset:
print i.__dict__[nameField],
for j in specify.keys():
print i.__dict__[j],
print
এবং? আপনি কি মনে করেন?