如何使用Django、Python(可能还有Javascript)手动重新排列对象列表?

2024-05-20 02:03:57 发布

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

这是我的密码。 models.py

from django.db import models


class Photo(models.Model):
    file = models.ImageField(upload_to='media/images')

class Album(models.Model):
    title = models.CharField(max_length=100)
    photos = models.ManyToManyField(Photo,related_name="photos",blank=True)

管理员

from django.contrib import admin
from .models import Photo, Album
# Register your models here.

class AlbumAdmin(admin.ModelAdmin):
    list_display = ("title","published")
    filter_horizontal = ("photos",)
    def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "photos":
            kwargs["queryset"] = Photo.objects.order_by("-id")
        return super(AlbumAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
        
admin.site.register(Photo)
admin.site.register(Album, AlbumAdmin)

views.py

from django.shortcuts import render
from django.conf import settings

from .models import Photo, Album

# Create your views here.

def album(request, album_title):
    album = Album.objects.get(title=album_title)
    context = {
        "album":album,
    }
    return render(request, "photos/album.html", context)

我试图实现一个页面,显示每个相册中的照片,并具有拖放功能,允许手动重新排序每个相册中的照片。然后我想保存相册的顺序。唯一的问题是,我不知道怎么做


Tags: djangofromimportfielddbalbumadmintitle
1条回答
网友
1楼 · 发布于 2024-05-20 02:03:57

这不是一个简单的任务,所以你不能只期望一行答案,但我想这是一个很好的用例,看看一些试图解决这个问题的包

下面是所有试图解决订购问题的软件包的一个很好的概述,也许其中一个很适合您: https://djangopackages.org/grids/g/model-ordering/

相关问题 更多 >