জ্যাঙ্গো-প্রতিনিধি স্বয়ংক্রিয়ভাবে Chainable ম্যানেজার / QUERYSET DELEGATE কে পদ্ধতি পেতে একটি জ্যাঙ্গো অ্যাপ্লিকেশন.
সাধারণত, পরিচালক পদ্ধতি নির্ধারণ করে, জ্যাঙ্গো আপনি এই কাজ করতে দেয়:
>>> SomeModel.objects.custom_query ()
... কিন্তু এটা আপনি এই কাজ করতে দেওয়া হবে না:
>>> SomeModel.objects.custom_query (). Another_custom_query ()
... আপনি আপনার পদ্ধতি এবং অনুরূপ এখন পর্যন্ত একটি অপ্রয়োজনীয় queryset উপশ্রেণী ... সংজ্ঞায়িত না.
DelegateManager এবংdelegate সঙ্গে, আপনি বিনামূল্যে chaining সঙ্গে রক্ষণীয় কাস্টম প্রশ্ন যুক্তি লিখতে পারেন. পরিবর্তে পরিচালক পদ্ধতি সংজ্ঞা, আপনি queryset পদ্ধতি নির্ধারণ আপনি অর্পণ করতে চান যারা, এবং queryset উল্লেখ দুই লাইন DelegateManager উপশ্রেণী শোভিত. ইটি বেহালাজাতীয় বীণাবিশেষ. তাই ভালো:
প্রতিনিধি আমদানি DelegateManager থেকে, প্রতিনিধি
বর্গ CustomQuerySet (models.query.QuerySet):
& Nbsp;delegate
& Nbsp; Def qs_method (স্ব, some_value):
& Nbsp; ফিরে self.filter (some_param__icontains = some_value)
& Nbsp; Def dont_delegate_me (স্ব):
& Nbsp; ফিরে self.filter (some_other_param = "অন্য কিছু")
বর্গ CustomManager (DelegateManager):
& Nbsp; __ queryset__ = CustomQuerySet
বর্গ SomeModel (models.Model):
& Nbsp; বস্তু = CustomManager ()
# এই কাজ করবে:
SomeModel.objects.qs_method ('Yo ডগ')
# এই কাজ করবে:
SomeModel.objects.qs_method ('Yo ডগ'). Qs_method ('আমি আপনাকে পদ্ধতি প্রতিনিধি দল queryset চান শোনা')
স্বয়ংক্রিয়ভাবে একটি QuerySet পদ্ধতি সব অর্পণ করার জন্য, আপনি DelegateQuerySet একটি উপশ্রেণী তৈরি করতে পারেন. এই দুটি QuerySet উপশ্রেণী অভিন্নরুপে কাজ:
প্রতিনিধি আমদানি DelegateQuerySet থেকে, প্রতিনিধি
বর্গ ManualDelegator (models.query.QuerySet):
& Nbsp;delegate
& Nbsp; Def qs_method (স্ব):
& Nbsp; # ...
বর্গ AutomaticDelegator (DelegateQuerySet):
& Nbsp; Def qs_method (স্ব):
& Nbsp; # ...
এছাড়াও আপনি একটি বর্গ সরাসরিdelegate প্রসাধক আবেদন করতে পারেন - এই আপনি তার উত্তরাধিকার চেইন ব্যাহত ছাড়া একটি বর্গ সব পদ্ধতি প্রতিনিধি অনুমতি দেয়. এই যেমন আগের দুটি অনুরূপ কাজ করে:
প্রতিনিধি আমদানি প্রতিনিধি থেকে
delegate
বর্গ CustomQuerySet (models.query.QuerySet):
& Nbsp; Def qs_method (স্ব, some_value):
& Nbsp; ফেরত self.filter(some_param__icontains=some_value)
Requirements:
- Python
- জ্যাঙ্গো
পাওয়া মন্তব্যসমূহ না