У меня есть поле (slug), которое «требуется» в модели, но я хочу изменить поле в классе ModelAdmin на необязательное. Если пользователь не заполняет его, оно автоматически заполняется другим полем (именем).
class SomeModel(model.Model):
name = model.CharField(max_length=255)
slug = model.SlugField(unique=True, max_length=255)
Я пытался сделать это различными способами, такими как переопределение get_form () внутри ModelAdmin или использование класса ModelForm и конкретное указание формы.
class SomeModelAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
form = super(self.__class__, self).get_form(request, obj, **kwargs)
form.slug.required = False
return form
Однако ни одно из решений не сработало для меня. Помимо ручного создания формы, есть ли другое более быстрое решение?
У меня много таких форм, и делать это вручную может быть утомительно и трудно поддерживать.