Мне нужно передать первичный ключ из вновь созданного ModelForm
в другое поле формы в том же представлении, но я получаю сообщение об ошибке. Любые предложения, чтобы сделать эту работу?
Похоже, в прошлом это было бы ответом:
def contact_create(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse(contact_details, args=(form.pk,)))
else:
form = ContactForm()
Из документации это то, что происходит в новой версии Django > 1.8.3
p3 = Место (name= "Демонские собаки", адрес = '944 W. Fullerton') Restaurant.objects.create(place = p3, serve_hot_dogs = True, serve_pizza = False)
Traceback (последний последний звонок):
...
ValueError: save() запрещено для предотвращения потери данных из-за несохраненного связанного объекта "место".
Вот как я получаю свой pk
из представления:
my_id = ""
if form.is_valid():
# deal with form first to get id
model_instance = form.save(commit=False)
model_instance.pub_date= timezone.now()
model_instance.user= current_user.id
model_instance.save()
my_id = model_instance.pk
if hourformset.is_valid():
hourformset.save(commit=False)
for product in hourformset:
if product.is_valid():
product.save(commit=False)
product.company = my_id
product.save()
else:
print(" modelform not saved")
return HttpResponseRedirect('/bizprofile/success')