Как установить для m2m-поля разные наборы запросов для каждого встроенного объекта?

Итак, у меня есть модель, которая показана в виде строки. Эта модель есть ManyToManyField,

Представьте, что есть несколько встроенных объектов, которые уже созданы.

Проблема в том, как показать разные наборы запросов доступных объектов в моем m2m-поле на основе оригинального inline-объекта.

Еще раз:) Я имею в виду, что в каждом inline-объекте должно быть m2m-поле с разными доступными вариантами. Варианты, конечно, будут включать все, что на самом деле установлено для этого inline-объекта + они должны включать только варианты, которых в настоящий момент нет нигде.

Благодарю.

1 ответ

Вопрос написан очень плохо, поэтому трудно быть уверенным, что именно вы ищете, но я думаю, что вы хотите ограничить набор запросов для ManyToManyField на предметы, которые не назначены ни на что другое? Если это правильно:

(Вы также не опубликовали пример модели, поэтому я сделаю пример для иллюстрации)

class SomeModel(models.Model):
    my_m2m_field = models.ManyToManyField(OtherModel)

И вот код для ограничения поля на основе этого:

class SomeModelInlineAdminForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyInlineAdminForm, self).__init__(*args, **kwargs)

        self.fields['my_m2m_field'].queryset = OtherModel.objects.filter(somemodel__isnull=True)

class SomeModelInlineAdmin(admin.TabularInline):
    model = SomeModel
    form = SomeModelInlineAdminForm
Другие вопросы по тегам