Здравствуйте.
Вьюха создает запись и тут же можно ее отредактировать через форму.
Но после кнопки формы создается новая запись вместо update:
def oper_next(request, oper_id_op, template_name="stage/otk_new.html"):
Op1 = Oper.objects.get(id_op = oper_id_op) #Ok! получить объект..
otk = Otk.objects.create( id_op = Op1, techn_oper=Op1.techn_oper,
prod=Op1.prod, sostav=Op1.sostav, ispoln=Op1.ispoln, smena=Op1.smena, kolwo = Op1.kolwo,)
if request.method == 'POST':
f = EditOtkForm(request.POST, instance=otk)
if f.is_valid():
f.save()
return HttpResponseRedirect(reverse('oper'))
else:
f = EditOtkForm(instance=otk) #
ctx = {'otk': otk,'form': f, 'oper': Op1}
return render(request, template_name, ctx)
уже в форме явно указал:
class EditOperForm(OperForm):
def save(self):
oper = self.instance
oper.save( force_insert=False, force_update = True ) # не добавлять, замещать
return oper
шаблон:
{% extends "base_generic.html" %}
{% block content %}
<a href="{% url 'stage_index' %}"> --- на Главную --- </a>
<h3> НОВАЯ Запись в Журнал </h3>
<p><strong>Запись провел:</strong> {{ otk.posted_by }} {{ otk.created_on }}</p>
<p><strong>(от техн.зад.)</strong> {{ oper.id_op }}</p>
<p><strong>Продукт:</strong> {{ otk.prod }}</p> <!-- -->
<p><strong>Статус записи:</strong> {{ otk.status }}</p>
======= <strong> отредактируйте необходимые поля внизу </strong> =============
<h3> Редактирование записи:</h3>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Сохранить изменения</button>
</form>
{% endblock %}
Все равно добавляет.
И что самое приятное - подобное в этом же проекте работает, а это - нет
Никто не сталкивался с подобным?