Reputation: 2322
I'm trying to add a custom field to wagtail ModelAdmin, but not sure how to do that. I tried
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
But looks like I go in wrong direction, and such can be achieved in ModelAdmin itself
Upvotes: 0
Views: 36
Reputation: 13
It looks like you put everything in the same file.
The FootballMapAdminForm should go into views.py
And everything related to FootballMapAdminSite(ModelAdmin) into wagtail_hooks.py (needs to be created) within your Apps Folder.
Upvotes: 0