के लिए क्वेरीसेट ओवरराइड करना मुझे अपने इनलाइन व्यवस्थापक के लिए क्वेरीसेट ओवरराइड करने में कुछ परेशानी हो रही है।इनलाइन व्यवस्थापक
class MyInlineAdmin(admin.TabularInline):
model = MyInlineModel
def queryset(self, request):
qs = super(MyInlineAdmin, self).queryset(request)
return qs
class ParentAdmin(admin.ModelAdmin):
inlines = [MyInlineAdmin]
admin.site.register(ParentAdminModel, ParentAdmin)
अब मैं qs.filter(user=request.user)
या qs.filter(date__gte=datetime.today())
कोई समस्या नहीं कर सकते हैं:
यहाँ एक दलदल की मानक माता पिता व्यवस्थापक और इनलाइन व्यवस्थापक है।
लेकिन मुझे जो चाहिए वह MyInlineModel उदाहरण या ParentAdminModel इंस्टेंस (मॉडल नहीं!) है, क्योंकि मुझे इसके आधार पर अपनी क्वेरीसेट फ़िल्टर करने की आवश्यकता है।
क्या क्वेरीनेट() विधि के अंदर self.instance या obj (get_readonly_fields() या get_formset() में कुछ प्राप्त करना संभव है?
आशा है कि यह समझ में आता है। किसी भी प्रकार की मदद की बेहद सराहना की जाती है। इस बारे में अधिक के लिए
class MyInlineModel(models.Model):
car=models.Foreignkey(Car)
#blah
;:
अपने मॉडल
http://stackoverflow.com/questions/14950193/how-to-get-the-current-model-instance-from-inlineadmin-in-django उपयोगी हो सकता है –
ध्यान दें कि Django 1.6 में क्वेरीसेट विधि का नाम बदलकर get_queryset कर दिया गया था। https://docs.djangoproject.com/en/dev/releases/1.6/#get-query-set-and-similar-methods-renamed-to-get-queryset – jenniwren