对Django Admin中的CommaseParatedIntegraterField进行排序

2024-10-01 04:59:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个模型,它有一个分隔的整数域,在这个域中我存储了从文件管理器FolderField中获取的一些图像的顺序。你知道吗

class Gallery(models.Model)
    […]
    folder = FilerFolderField(blank=False)
    order = models.CommaSeparatedIntegerField(max_length=300, blank=True)

现在我正在寻找一种方法,可以在Django管理中轻松地更改这个顺序(例如通过拖放)

另外,我知道FilerFolderField还没有文档记录,可以删除,而且CommaSeparatedIntegerField也不推荐使用。你知道吗


Tags: 模型图像false管理器model顺序models整数
1条回答
网友
1楼 · 发布于 2024-10-01 04:59:51

正如e4c5的评论所建议的,我大量地改变了我的方法。 我现在有了一个带有FilerFolderField(仍然没有文档记录)和sortedm2m的模型文件管理器.models.Image使用选定文件夹中所有文件的自定义查询集。你知道吗

你知道吗型号.py地址:

class Car(models.Model):
    …
    folder = filer.fields.folder.FilerFolderField(blank=False)
    images = SortedManyToManyField(filer.models.Image)
    …

你知道吗管理员.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)

相关问题 更多 >