Как передать пользовательский параметр URL для каждой кнопки поиска raw_id_fields в django-admin - PullRequest
0 голосов
/ 08 октября 2019

У меня есть модели

class Product(models.Model):
    number = models.CharField(_('OEM/Part number'), max_length=128,)
    ....

class Orderitem(models.Model):
    searchstring = models.CharField(_('OEM/Part number'), max_length=128, blank=True, default='',)
    product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
    order = models.ForeignKey(Order, on_delete=models.CASCADE,)
    ....

class Order(models.Model):
    ....

И администраторы

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
    list_display = ('number', .....)
    search_fields = ('number',)


class OrderitemInline(admin.TabularInline):
    model = Orderitem

    fields = ('searchstring', 'product', .....)
    readonly_fields = ('searchstring',)
    raw_id_fields = ["product"]

    def get_formset(self, request, obj=None, **kwargs):
        form = super().get_formset(request, obj, **kwargs)
        field = form.form.base_fields['product'].widget.rel.limit_choices_to = {'q': '11111111'}
        return form


@admin.register(Orderdiscuss)
class OrderdiscussAdmin(admin.ModelAdmin):
    list_display = (....)
    inlines = [
        OrderdiscussItemInline,
    ]
    .....

Как заменить "11111111" из

field = form.form.base_fields['product'].widget.rel.limit_choices_to = {'q': '11111111'}

на каждое поле "Строка поиска" в Orderitem? , чтобы иметь URL-адреса raw_id_fields, такие как:

http://localhost:8003/admincp/catalog/product/?q=searchstring1
http://localhost:8003/admincp/catalog/product/?q=searchstring2
и другие, чтобы я мог просматривать только связанные записи во всплывающем окне?

Спасибомного!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...