dajngo-admin-sortable2 не сортирует порядок сортировки SortableAdminMixin - PullRequest
0 голосов
/ 06 ноября 2019

Я создал приложение с 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:

Django admin tutorial model panel

SQLite3 представление соответствующей таблицы:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...