Я хочу отфильтровать параметры, которые появляются в поле M2M формы, с помощью набора запросов. Я читал, что limit_choices_to
можно использовать только с ForeignKey. Есть ли что-то похожее на limit_choices_to
, которое можно применить к M2M?
Это моя модель:
class Inspection(models.Model):
ref = models.CharField(max_length=50)
tools = models.CharField(max_length=150,null=True,blank=True)
areas = models.ManyToManyField('specimens.Area',null=True,blank=True)
А это модель поля M2M:
class Area(models.Model):
ref = models.CharField(max_length=10)
description = models.TextField(max_length=150)
specimen = models.ForeignKey(Specimen)
class Meta:
unique_together = ['ref','specimen']
Я хотел бы отфильтровать области проверки с помощью набора запросов: Area.objects.filter(specimen="specimen")
Другое сообщение (Многие для многих и как получить набор запросов из набора запросов) объясняет, как это сделать, изменяя форму администратора, я думаю (я не очень понимаю это), но это не работает для меня, получаю DoesNotExist
ошибки или Super
ошибки. Должен ли я поменять свой InspectionForm
на InspectionAdminForm
, на котором написано сообщение раньше?
Любые идеи?
РЕДАКТИРОВАТЬ-1:
Я понял, что это вызывает другую ошибку:
Это полный код, который я использовал:
class InspectionAdminForm(forms.ModelForm):
class Meta:
model = Inspection
def __init__(self, *args, **kwargs):
super(InspectionAdminForm,self).__init__(*args,**kwargs)
self.fields['areas'].queryset = Area.objects.filter(specimen=self.instance.specimen)
class InspectionAdmin(admin.ModelAdmin):
form = InspectionAdminForm
filter_horizontal = ['areas']
makemigrations
иmigrate
после настройки моделей? Похоже, он не знает, куда поместить ваши данные (и не получить их) ... - person mccc   schedule 30.10.2014