我在Django中插入實例數據的問題,這是我的模型如何在django中從視圖插入數據實例?
class DipPegawai(models.Model):
PegID = models.AutoField(primary_key=True)
PegNamaLengkap = models.CharField(max_length=100, blank=True, null=True)
PegUser = models.OneToOneField(User, null=True, blank=True, unique=True)
class DipHonorKegiatanPeg(models.Model):
KegID = models.AutoField(primary_key=True)
PegID = models.ForeignKey(DipPegawai)
這是我的看法
def tambah_klaimhonor(request):
klaim = {}
user = request.user.id
pegid = DipPegawai.objects.filter(PegUser = user).values_list('PegID',flat=True)[0]
honoruser = DipHonorKegiatanPeg(PegID=pegid)
if request.method == 'POST':
form = KlaimHonorGuruKarForm(request.POST, instance=pegid)
if form.is_valid():
form.save()
return redirect('index_klaimhonor')
klaim['form'] = KlaimHonorGuruKarForm()
return redirect('index_klaimhonor')
當我插入數據,我得到這個錯誤
Exception Type: ValueError at /kegiatan/tambah_klaimhonor
Exception Value: Cannot assign "41L": "DipHonorKegiatanPeg.PegID" must be a "DipPegawai" instance.
我的表格
class KlaimHonorGuruKarForm(ModelForm):
class Meta:
model = DipHonorKegiatanPeg
fields = ('KegNama', 'KegTglMulai', 'KegJamMulai', 'KegTglAkhir', 'KegJamAkhir',)
labels = {'KegNama': 'Nama Kegiatan', 'KegTglMulai': 'Mulai Tanggal Kegiatan',
'KegJamMulai': 'Mulai Jam Kegiatan',
'KegTglAkhir': 'Akhir Tanggal Kegiatan', 'KegJamAkhir': 'Akhir Jam Kegiatan'}
widgets = {
# 'KegNama': TextInput(attrs={'required': True}),
'KegJamAkhir': TextInput(attrs={'required': True}),
'KegTglMulai': DateInput(attrs={'id': 'datepicker', 'data-date-format': 'yyyy-mm-dd', 'required': True}),
'KegTglAkhir': DateInput(attrs={'id': 'datepicker1', 'data-date-format': 'yyyy-mm-dd', 'required': True}),
'KegJamMulai': TextInput(attrs={'id': 'timepicker2', 'required': True}),
}
我使用用戶登錄在DipHonorKegiatanPeg中插入數據,但是我想從DipPegawai插入PegID.DipHonorKegiatanPeg實例?
你能減少到[mcve]嗎? – xiawi
心中已經降低它@xiawi – Gusan