【发布时间】:2019-11-06 11:20:51
【问题描述】:
我使用 django 和 python3 创建了一个应用程序,其中包含几个教程,这些教程又包含保存在另一个表中的多个内容条目。每个教程都由练习教程模型中的一个条目表示。我希望能够在 django 管理面板中对教程和内容进行排序。它适用于带有 SortableInlineAdminMixin 类的内联教程内容。如果我从头开始创建新教程而之前没有保存任何对象,它也可以正常工作(如果我克隆这个项目并从头开始设置,它可以在我的电脑上本地工作)
我现在的问题是,我在带有 apache 的 ubuntu 服务器上设置了如下代码和图片中的应用程序设置,但我无法对教程进行排序(内联内容仍然可以正常工作)。如果我将它们拖放到新位置并重新加载,它们不会保存在新位置并回退到旧位置。
教程和教程内容模型:
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 管理员教程模型面板:
对应表的SQLite3视图:
【问题讨论】:
标签: python python-3.x django django-models django-admin