Заставьте django-admin-sortable и django-parler работать вместе
У меня есть две модели с отношением многие ко многим, используя through
Таблица
# models.py
class Item(TranslatableModel):
name = models.CharField(max_length=100) # this one is translatable
class Person(TranslatableModel):
name = models.CharField(max_length=100) # this one is translatable
items = models.ManyToManyField(
'Item',
through='PersonItem',
)
class PersonItem(Sortable):
class Meta(Sortable.Meta):
ordering = ['order']
person = models.ForeignKey('Person')
item = SortableForeignKey('Item')
Но я не могу отсортировать Item
в админке
# admin.py
class PersonItemInline(TranslatableTabularInline, SortableTabularInline):
model = PersonItem
form = PersonItemForm
extra = 1
class PersonAdmin(TranslatableAdmin):
form = PersonForm
inlines = [
PersonItemInline
]
admin.site.register(Person, PersonAdmin)
Когда я наследую от translatable
Сначала я теряю функцию сортировки. Когда я пытаюсь унаследовать от sortable
сначала у меня следующая ошибка
NoReverseMatch Реверс для person_person_do_sorting с аргументами (239,) и ключевыми словами {{}'не найден. 0 шаблон (ов) пытались: []
Конверт (Python 3):django==1.10.7
, django-parler==1.6.5
, django-admin-sortable==2.0.19
1 ответ
Решение
@ наиболее разыскиваемый, убедитесь, что порядок отсутствия помех правильный:
class PersonItemInline(SortableTabularInline, TranslatableTabularInline):
...
class PersonAdmin(SortableAdmin, TranslatableAdmin):
...
и переопределить change_form_template_extends
в PersonAdmin
класс как это:
class PersonAdmin(SortableAdmin, TranslatableAdmin):
change_form_template_extends = 'admin/parler/change_form.html'