Добавьте пользовательское поле в МодельАдмина wagtailadmin
Я пытаюсь добавить пользовательское поле в wagtail ModelAdmin, но не уверен, как это сделать. Я пытался
from wagtail_modeladmin.options import ModelAdmin, modeladmin_register
from wagtail_modeladmin.views import EditView
from django import forms
from django.contrib.admin.utils import quote
from wagtail.log_actions import registry as log_registry
from dzen_wagtail.football_maps.models import FootballMap
class FootballMapAdminForm(forms.ModelForm):
extra_link = forms.URLField(
label="Extra link",
widget=forms.URLInput(attrs={"type": "button"}),
)
field_order = ["tg", "name", "location", "history", "covering", "extra_link", "status"]
class Meta:
model = FootballMap
fields = ["tg", "name", "location", "history", "covering", "extra_link", "status"]
def __init__(self, *args, **kwargs):
super(FootballMapAdminForm, self).__init__(*args, **kwargs)
self.fields["extra_link"].initial = "https://example.com"
class FootballMapEditView(EditView):
def get_form(self):
return FootballMapAdminForm(instance=self.instance)
@modeladmin_register
class FootballMapAdminSite(ModelAdmin):
model = FootballMap
menu_label = "Карта коробок"
menu_icon = "circle-check"
edit_view_class = FootballMapEditView
def get_list_display(self, request):
list_display = ["location", "status"]
return list_display
Но похоже, что я иду не в том направлении, и такого можно добиться в самом ModelAdmin
Похоже, что вы поместили все в один файл.
Форма FootballMapAdminForm должна находиться в файле views.py
И все, что связано с FootballMapAdminSite(ModelAdmin) в wagtail_hooks.py (должен быть создан) в вашей папке Apps.