Я сделал приятную форму и большую сложную функцию "добавить" для ее обработки. Он начинается так...
def add(req):
if req.method == 'POST':
form = ArticleForm(req.POST)
if form.is_valid():
article = form.save(commit=False)
article.author = req.user
# more processing ...
Теперь я действительно не хочу дублировать все эти функции в методе edit()
, поэтому я решил, что edit
может использовать тот же самый шаблон и, возможно, просто добавит в форму поле id
, чтобы < Функция t24 > знала, что она редактирует. Но есть пара проблем с этим
- Где бы я установил
article.id
в функцииadd
? Это должно быть послеform.save
, потому что там, где создается статья, но она никогда не достигла бы этого, потому что форма недействительна из-за уникальных ограничений (если пользователь не отредактировал все). Я могу просто удалить проверкуis_valid
, но вместо этого произойдет сбойform.save
. - Если форма фактически недействительна, поле I, динамически добавленное в функцию редактирования, не сохраняется.
Итак, как мне с этим справиться?