Yeni oluşturulmuş bir ModelForm
'dan bir birincil anahtarı aynı görünümdeki başka bir form alanına geçirmem gerekiyor ancak bir hata alıyorum. Bunu yapmak için herhangi bir öneriniz var mı? Geçmişte benziyor, bu yanıtın olacaktır: belgelerineKaydedilmemiş ilgili nesne nedeniyle veri kaybını önlemek için() yasak
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()
, bu yeni Django sürümü > 1.8.3
p3 = Place(name='Demon Dogs', address='944 W. Fullerton') Restaurant.objects.create(place=p3, serves_hot_dogs=True, serves_pizza=False)
Traceback (most recent call last):
...
ValueError: save() prohibited to prevent data loss due to unsaved related object 'place'.
ben alıyorum nasıl Bu edilir olup bitenler benim görünümden 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')
Birkaç şey: 1) neden sadece current_user yerine current_user.id öğesine model_instance.user ayarlıyorsunuz, 2) product.company = my_id yerine product.company = model_instance ve 3) hata nedir (Aldığınız ValueError mı?) ve kodda hangi satırdasınız? –
hata her zaman product.save() konumunda. Kaydedilmemiş ilgili nesne 'şirket' nedeniyle veri kaybını önlemek için – Godfrey
save() yasaklanmıştır. Önerilerinizi zaten uyguladım. – Godfrey