Django Admin Sortable 2 Не сохраняющий порядок - PullRequest
0 голосов
/ 02 мая 2018

Я установил Django Admin Sortable 2 в свой проект Django. Я вижу систему порядка перетаскивания в администраторе, но когда я перемещаюсь по некоторым объектам, порядок не сохраняется. Я не вижу ошибок в журнале терминала при перемещении объектов.

Вот мои файлы Python для моделей и администраторов. Нужно ли делать что-то еще, чтобы получить заказ на сохранение?

Model.py

class QuickLink(models.Model):
    title = models.CharField(max_length=20)
    image = models.FileField(null=True, blank=False,upload_to='media/quick_links')
    link = models.CharField(max_length=200)
    order = models.PositiveIntegerField(default=0, blank=False, null=False)

    def __str__(self):
        return self.title

    class Meta(object):
        ordering = ['order']

Admin.py

from django.contrib import admin
from adminsortable2.admin import SortableAdminMixin
from .models import QuickLink

@admin.register(QuickLink)
class QuickLinksAdmin(SortableAdminMixin, admin.ModelAdmin):
    pass

Мои версии следующие:

Джанго 2.0.4

Python 3.6.1

Django Admin Sortable 2 0.6.19

Ответы [ 3 ]

0 голосов
/ 02 августа 2018

Причина, по которой у меня возникли проблемы с переупорядочением объектов, заключалась в том, что я уже создал объекты при добавлении функции Sortable.

При установке для этого значения по умолчанию значения 0 все они будут установлены на 0. Путем возврата назад и воссоздания объектов или редактирования поля в БД в правильном порядке, я смог это исправить.

0 голосов
/ 09 июля 2019

Также можно создать миграцию данных, которая задает начальный порядок для уже созданной модели.

def reorder(apps, schema_editor):
    Tag = apps.get_model("main", "Tag")
    order = 0
    for item in Tag.objects.all():
        order += 1
        item.order = order
        item.save()


class Migration(migrations.Migration):

    dependencies = [
        ('main', '0011_auto_20190517_1336'),
    ]

    operations = [
        migrations.RunPython(reorder, RunPython.noop),
0 голосов
/ 15 мая 2018

Попробуйте запустить команду управления: ./manage.py reorder <app.model>

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