Формы Django Wagtail на основе моделей

У меня есть простая модель, которая ссылается на мою модель Auth_User_model. Я хочу создать простую форму, которая создает OAuth2Client, который наследует функциональность от OAuth2ClientMixin.

class OAuth2Client(models.Model, OAuth2ClientMixin):
   user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)


class FormPage(AbstractForm):
    class Meta:
        model = OAuth2Client

Мне неясно, как привязать страницу формы к моей модели? Я использую этот высокоуровневый учебник, но он кажется немного ориентированным на AbstractEmailForm. Которая не работает для меня. Как мне создать форму на основе модели?

Приложение wagtail.contrib.forms предназначено для простого сбора данных, таких как опросы, где поля формы определяются редакторским способом через интерфейс администратора - это не тот случай, где поля формы неотъемлемо связаны с определением модели, заданным в коде. Django ModelForm подходит лучше:

from django.forms import ModelForm

class OAuth2ClientForm(ModelForm):
    class Meta:
        model = OAuth2Client

Если вы хотите встроить эту форму в страницу Wagtail, а не в обычное представление Django, вы можете переопределить метод serve в модели страницы, который имеет очень похожее поведение на функцию представления Django (принимает объект запроса в качестве аргумента и возвращает объект ответа) - именно здесь вы разместите логику для проверки request.POST и обработки или рендеринга формы соответствующим образом .

Вернуться на верх