Трясогузка Django-форма редактировать существующий объект - PullRequest
0 голосов
/ 15 января 2019

Я следую примеру wagtail-form на GitHub для реализации формы Django в трясогузке. У меня все работает, кроме возможности редактировать существующее представление.

Это код, которому я следовал до сих пор https://github.com/gasman/wagtail-form-example/blob/master/flavours/models.py

Я попробовал несколько вариантов кода ниже.

def serve(request, id):
   instance = get_object_or_404(MyModel, id=id)
   form = MyForm(request.POST or None, instance=instance)

Если это поможет, я получаю следующее сообщение: Аргумент int () должен быть строкой, байтовоподобным объектом или числом, а не 'builtin_function_or_method'

Любая помощь / примеры будут оценены:)

1 Ответ

0 голосов
/ 16 января 2019

Изменение def serve(self, request): на def serve(request, id): не работает таким образом.

Ваш второй аргумент id теперь содержит объект request, а не ожидаемый int, как вам говорит ошибка.

Начните с соблюдения аргументов метода serve(self, request). Это означает, что вам нужно запросить форму другим способом.

Например: get_object_or_404(MyModel, id=[some hardcoded id])

Если вы хотите, чтобы любая форма отображалась как дочерний элемент вашей страницы, вы можете использовать RoutablePageMixin , чтобы добавить URL относительно вашей страницы. Например:

@route(r'^(\d+)/$')
def form_view(self, request, form_id=None):
    instance = get_object_or_404(MyModel, id=form_id)
...