Редактирование полей many_to_many в панели admin_panel __init__() принимает 13 позиционных аргументов, но было задано 14
Я искал способ редактирования, отображения и удаления при использовании M2M полей в панели администратора. на основе How To Edit ManyToManyField In Django Admin list Display Page? . При адаптации к моему проекту я столкнулся с ошибкой init() принимает 13 позиционных аргументов, но было задано 14 класс app.admin app.admin
class ReceptChangeList(ChangeList):
def __init__(self,
request,
model,
list_display,
list_display_links,
list_filter,
date_hierarchy,
search_fields,
list_select_related,
list_per_page,
list_max_show_all,
list_editable,
model_admin):
super(ReceptChangeList, self).__init__(request,
model,
list_display,
list_display_links,
list_filter,
date_hierarchy,
search_fields,
list_select_related,
list_per_page,
list_max_show_all,
list_editable,
model_admin)
# these need to be defined here, and not in MovieAdmin
self.list_display = ['action_checkbox', 'name', 'ingredient']
self.list_display_links = ['name']
self.list_editable = ['ingredient']
@admin.register(Recept)
class ReceptAdmin(admin.ModelAdmin):
#list_display = ('author','name','description',)
def get_changelist(self, request, **kwargs):
return ReceptChangeList
def get_changelist_form(self, request, **kwargs):
return ReceptChangeListForm
app.forms
from django import forms
from api.models import Ingredient
class ReceptChangeListForm(forms.ModelForm):
ingredient = forms.ModelMultipleChoiceField(
queryset=Ingredient.objects.all(),
required=False)
Посмотрев на исходный код Django для класса , вы ChangeList
выглядите следующим образом для __init__
версии 4.0:
def __init__(self, request, model, list_display, list_display_links,
list_filter, date_hierarchy, search_fields, list_select_related,
list_per_page, list_max_show_all, list_editable, model_admin, sortable_by,
search_help_text):
А это для 3.2:
def __init__(self, request, model, list_display, list_display_links,
list_filter, date_hierarchy, search_fields, list_select_related,
list_per_page, list_max_show_all, list_editable, model_admin, sortable_by):
В зависимости от версии вашего Django, проверьте, что вы используете правильные параметры.