gpt4 book ai didi

python - django-admin-sortable2 不排序 SortableAdminMixin 的顺序

转载 作者:行者123 更新时间:2023-12-04 14:17:38 25 4
gpt4 key购买 nike

我使用 django 和 python3 创建了一个包含多个教程的应用程序,这些教程又包含保存在另一个表中的多个内容条目。每个教程都由练习教程模型中的一个条目表示。我希望能够对 django 管理面板中的教程和内容进行排序。它适用于带有 SortableInlineAdminMixin 类的内联教程内容。如果我在没有保存任何对象的情况下从头开始创建新教程,它也可以正常工作(如果我克隆这个项目并从头开始设置它,它可以在我的电脑上本地工作)

我现在的问题是,我的应用程序设置就像您在带有 apache 的 ubuntu 服务器上的代码和图片中看到的那样,但我无法对教程进行排序(内联内容仍然可以正常工作)。如果我将它们拖放到新位置并重新加载,它们不会保存在新位置并返回到旧位置。

教程和 TutorialContent 模型:

from django.db import models
from ckeditor_uploader.fields import RichTextUploadingField


# Page for tutorials
class Tutorial(models.Model):
title = models.CharField(max_length=60)
order = models.PositiveIntegerField(default=0, null=False, unique=True)

# Timestamp
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

class Meta:
ordering = ['order']

def __str__(self):
return self.title


# Content for tutorials
class TutorialContent(models.Model):
lesson_page = models.ForeignKey(Tutorial, related_name='tutorial_content', on_delete=models.CASCADE)
content = RichTextUploadingField()
order = models.PositiveIntegerField(default=0, null=False)

# Timestamp
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

class Meta:
ordering = ['order']

def __str__(self):
description = 'Order - ' + str(self.order)
return description

教程和教程内容管理员:

from django.contrib import admin
from .models import Tutorial, TutorialContent
from adminsortable2.admin import SortableInlineAdminMixin, SortableAdminMixin


class TutorialContentInline(SortableInlineAdminMixin, admin.TabularInline):
model = TutorialContent


class TutorialAdmin(SortableAdminMixin, admin.ModelAdmin):
model = Tutorial
inlines = [TutorialContentInline]
list_display = ['title']


admin.site.register(Tutorial, TutorialAdmin)

Django 管理教程模型面板:

Django admin tutorial model panel

对应表的SQLite3 View :

enter image description here

最佳答案

也许有点晚了,但是:

如果在您的模型中添加 adminsortable2 字段时,您的数据库中已经存在一些模型实例,则排序将不起作用,您需要在第一次构建订单时使用:

python manage.py reorder your_app.YourModel

来源:https://django-admin-sortable2.readthedocs.io/en/latest/usage.html#initial-data

希望这对您有所帮助。

关于python - django-admin-sortable2 不排序 SortableAdminMixin 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58728979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com