选择一个有效的选择。 XYZ不是可用的选择之一

时间:2013-10-25 19:28:58

标签: python django django-admin

我有一个添加移动应用条目的模型:

class MobileApp(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField()
    images = models.ManyToManyField(Image, blank=True)

在Django Admin中,我要做的是过滤列表中列出的图像,以防止django加载该表中的所有图像,这些图像非常多。

所以我目前做的是以下内容:

class MobileAppAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        form = super(MobileAppAdmin, self).get_form(request, obj, **kwargs)

        if obj:
            form.base_fields['images'].queryset = Image.objects.filter(pk__in=obj.images.all())
        else:
            form.base_fields['images'].queryset = Image.objects.filter(pk=0)
        return form

但是在提交表单时,添加新图像会发生以下情况:

Select a valid choice. XYZ is not one of the available choices.

在图像字段上。

我怎样才能做到这一点?我有很多字段需要相同的移动,因为django不断加载所有记录以填充关系列表。

由于

1 个答案:

答案 0 :(得分:2)

在提交表单时不要限制选项。

class MobileAppAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        form = super(MobileAppAdmin, self).get_form(request, obj, **kwargs)
        if request.method == 'GET':
            if obj:
                form.base_fields['images'].queryset = Image.objects.filter(pk__in=obj.images.all())
            else:
                form.base_fields['images'].queryset = Image.objects.filter(pk=0)
        return form