2015-08-30 2 views
0

У меня есть набор форм, который я рендеринга по умолчанию {{ formset }}. Страница отправляет себе сообщение после отправки формы.Как обновить набор форм новым pk id?

Проблема заключается в создании новых экземпляров, поля, содержащие идентификаторы, остаются пустыми, как <input id="id_form-0-id" name="form-0-id" type="hidden">. Поэтому, если я повторно отправлю форму после ее возвращения, она завершит создание новых экземпляров вместо обновления вновь созданных экземпляров. Если я обновляю страницу, тогда поля содержат идентификаторы <input id="id_form-0-id" name="form-0-id" type="hidden" value="18">.

Это моя функция контроллера:

def main_categories (request): 
    dict = {} 
    FormSet = modelformset_factory (MainCategory, formset = MainCategoryFormSet, fields = ['name'], extra = 1, can_delete = True) 

    if request.method == 'POST': 
     formset = FormSet (request.POST) 

     if formset.is_valid(): 
      with transaction.atomic(): 
       formset.save() 
    else: 
     formset = FormSet() 

    dict ['formset'] = formset 
    return render (request, 'equipment/admin/main_categories.html', dict) 
+0

Не очищается для меня, но если вы обновляете больше кода (модели, формы, URL-адреса, ...) или лучше ссылку на проект, я постараюсь вам помочь – madzohan

ответ

0

Если вы хотите отредактировать ранее представленный QuerySet, вы должны предоставить QuerySet в класс FormSet. См. documentation

+0

Я просто переназначил новый FormSet экземпляр переменной после того, как я сохранил ее, которая задает набор запросов как всю коллекцию. Достаточно просто. – TreeTree

Смежные вопросы