Я создал приложение с django и python3, содержащее несколько учебных пособий, которые, в свою очередь, содержат несколько записей контента, которые сохраняются в другой таблице. Каждый урок представлен записью в модели урока упражнений. Я хочу иметь возможность сортировать учебники и содержимое в админ-панели django. Он отлично работает для встроенного содержимого учебника с классом SortableInlineAdminMixin. Это также хорошо работает, если я создаю новые учебники с нуля, не сохраняя ранее никаких объектов (это работает локально на моем компьютере, если я клонирую этот проект и настраиваю его с нуля)
Моя проблема в том, что у меня естьнастройки приложения, как вы видите в коде и рисунках ниже на сервере Ubuntu с Apache, но я не могу отсортировать учебники (встроенное содержимое по-прежнему работает нормально). Если я перетаскиваю их на новую позицию и перезагружаю, они не сохраняются на новой позиции и не возвращаются на прежнюю позицию.
Модель Tutorial и 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
Tutorial and TutorialContent admin:
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 представление соответствующей таблицы: