Django admin inline: select_related

前端 未结 4 593
[愿得一人]
[愿得一人] 2020-12-14 04:52

Using Django 1.8 on Python 3.4.1 with models:

class Product(models.Model):
    name = models.CharField(max_length=255)
    # some more fields here

    def _         


        
4条回答
  •  误落风尘
    2020-12-14 05:00

    Inspired from @helpse answer you can also do the following if you just want to override the queryset for a single admin inline:

    class ComingProductsInline(admin.TabularInline):
        model = ComingProducts
    
        def get_formset(self, request, obj=None, **kwargs):
            formset = super(ComingProductsInline, self).get_formset(request, obj, **kwargs)
            queryset = formset.form.base_fields["priced_product"].queryset
            queryset = queryset.select_related("product")
            formset.form.base_fields["priced_product"].queryset = queryset
            return formset
    

    It might be sufficient for most of the cases.

提交回复
热议问题