e4c5のコメントで示唆されているように、私は自分のアプショーを大幅に変更しました。 FilerFolderField(これはまだ文書化されていません)とfiler.models.Imageのsortedm2mと、選択したフォルダ内のすべてのファイルのカスタムクエリーセットを持つモデルが作成されました。
models.py:
class Car(models.Model):
…
folder = filer.fields.folder.FilerFolderField(blank=False)
images = SortedManyToManyField(filer.models.Image)
…
admin.py:
class CarAdminForm(ModelForm):
class Meta:
model = Car
fields = '__all__'
def __init__(self, *args, **kwargs):
super(CarAdminForm, self).__init__(*args, **kwargs)
choices = []
for i in self.instance.folder.files.all():
i.__str__ = thumb_string
choices.append(i)
self.fields['images'].queryset = self.instance.folder.files.all()
class CarAdmin(admin.ModelAdmin):
list_display = ['name']
list_filter = ['created']
def __init__(self, model, admin_site):
super(CarAdmin, self).__init__(model, admin_site)
self.orig_form = self.form
def change_view(self, request, object_id, form_url='', extra_context=None):
self.form = CarAdminForm
self.prepopulated_fields = {}
self.exclude = []
return super(CarAdmin, self).change_view(request, object_id)
def add_view(self, request, form_url='', extra_context=None):
self.form = self.orig_form
self.prepopulated_fields = {"slug": ("name",)}
self.exclude = ('images',)
return super(CarAdmin, self).add_view(request)
class CategoryAdmin(admin.ModelAdmin):
list_display = ['title', 'description']
admin.site.register(Car, CarAdmin)
admin.site.register(Category, CategoryAdmin)
列にCSVを保存しないでくださいhttp://stackoverflow.com/questions/41304945/best-type-of -indexing-when-like-like-clause/41305027#41305027 http://stackoverflow.com/questions/41215624/sql-table-with-list-entry-vs-sql-table-with-a-row- for each-entry/41215681#41215681 – e4c5
このフィールドは(故意に)django 1.9 – e4c5
で廃止されましたので、この状況に応じて、どのプラクティスをお勧めしますか? –