python - 如何使用 Django、Python(可能还有 Javascript)手动重新排序对象列表?
问题描述
这是我的代码。模型.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)
管理员.py
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)
视图.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)
我正在尝试实现一个页面,该页面显示每个相册中的照片,并具有拖放功能,允许手动重新排序每个相册中的照片。然后我想保存专辑的顺序。唯一的问题是,我不知道如何做到这一点。
解决方案
这不是一项微不足道的任务,因此您不能只期望一条线的答案,但我想看看一些试图解决这个问题的包是一个很好的用例。
以下是尝试解决排序问题的所有包的一个很好的概述,也许其中一个非常适合您: https ://djangopackages.org/grids/g/model-ordering/
推荐阅读
- c - cs50 pset4/less 反映 check50 不工作
- java - 在spring security中排除身份验证以通过过滤器
- assembly - 通过利用堆栈重定向逻辑流
- android - 即使实现了后退按钮关闭,它也不起作用
- gfortran - 将 gfortran 编译的二进制文件分发给没有 Xcode 的 Mac OS X 用户?
- python - 接收 KeyError 但键存在于嵌套字典中
- ros - ROS-melodic 与 Gazebo 11 的兼容性
- c++ - 如果只有第一个 cin 输入不正确,我如何获得一个需要多个 cin 输入来识别错误的 if 语句?
- flutter - 如何计算页面加载的次数
- loops - 如何从 FOR 循环创建一个 txt 文件?