Anda perlu melihat dengan jelas bahawa objek siaran anda ialah PostForm() bukan Post() objek pemprosesan borang PostForm anda mempunyai nilai id awal, tetapi adakah nilai request.POST yang anda luluskan mempunyai nilai id? akan menjadi semula jadi. Ia adalah Tiada Jika siaran anda ialah objek Post(), maka ia mesti mempunyai nilai id
Terdapat satu maklumat yang tidak diberikan secara terperinci, iaitu PostForm cara anda mentakrifkannya.
Jika anda mentakrifkan PostForm seperti ini, anda boleh mendapatkan hasil yang anda inginkan dengan memanggil PostForm(request.POST).save().
class PostForm(forms.ModelForm):
class Meta:
model = Post
Tetapi PostForm anda pastinya tidak ditakrifkan dengan cara ini, kerana post = form.save(request.user) adalah cara yang salah untuk menggunakannya Kaedah ModelFormsave hanya mempunyai satu parameter, iaitu commit = False atau commit=True, yang menunjukkan. sama ada untuk menyimpan data ke Pangkalan Data, lalai Benar
Django tidak memerlukan "mendefinisikan kunci utama secara eksplisit"
Ia secara automatik akan menambah medan id (kunci utama, kenaikan automatik) pada jadual
Anda boleh mempertimbangkan untuk mengalih keluar kunci utama yang anda tentukan secara manual
Anda perlu melihat dengan jelas bahawa objek siaran anda ialah PostForm() bukan Post() objek pemprosesan borang PostForm anda mempunyai nilai id awal, tetapi adakah nilai request.POST yang anda luluskan mempunyai nilai id? akan menjadi semula jadi. Ia adalah Tiada Jika siaran anda ialah objek Post(), maka ia mesti mempunyai nilai id
Terdapat satu maklumat yang tidak diberikan secara terperinci, iaitu
PostForm
cara anda mentakrifkannya.Jika anda mentakrifkan
PostForm
seperti ini, anda boleh mendapatkan hasil yang anda inginkan dengan memanggilPostForm(request.POST).save()
.Tetapi PostForm anda pastinya tidak ditakrifkan dengan cara ini, kerana
post = form.save(request.user)
adalah cara yang salah untuk menggunakannya KaedahModelForm
save
hanya mempunyai satu parameter, iaitucommit = False
ataucommit=True
, yang menunjukkan. sama ada untuk menyimpan data ke Pangkalan Data, lalai BenarLihat pautan untuk kod sumber