Как установить для 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