0
私は自分のコードにいくつか問題があります。私は8つの属性を持つモデルを持っているModelFormからフォームを作ったが、私はユーザーがそれらのうちの1つだけを入力し、1つはシステムから入力したいと思う。ユーザーが入力するものは大丈夫ですが、システムで満たされたものは機能しません。OneToOneFieldはこれと関連していません。
models.py
class SeminarProposal(md.Model):
# diisi oleh mahasiswa
fileProposal = models.FileField()
# This is the one is filled with system
proposal = models.OneToOneField(Proposal,
on_delete=models.CASCADE,
related_name="propSid",
unique=True, blank=True, null=True)
masabimbingan = models.BooleanField(default=True)
# disi oleh admin
tanggal = models.DateField(default=timezone.now, blank=True,null=True)
tempat = models.CharField(max_length=30, blank=True, null=True)
# diisi oleh dosen pembimbing
dospemsetuju = models.BooleanField(default=False, blank=True)
# diisi oleh kaprodi
penguji1 = models.ForeignKey(Dosen,
on_delete=models.CASCADE,
related_name="penguji1",
blank=True, null=True)
penguji2 = models.ForeignKey(Dosen,
on_delete=models.CASCADE,
related_name="penguji2",
blank=True, null=True)
def __str__(self):
return "Sidang untuk " + self.proposal.judul
view.py
def daftarSeminar(request):
if request.method == 'POST':
form = FormSeminar(request.POST, request.FILES)
print(request.user)
if form.is_valid():
form.save(commit=False)
form.cleaned_data['proposal']
print(request.user)
prop = Proposal.objects.get(akun=request.user)
form.proposal = prop
print(form.proposal) #to confirm that this is not None
form.save()
return redirect('proposal:bimbingan')
else:
return render(request, 'sidprop.html' , {'oke': 'oke'})
return redirect('proposal:index')
form.py
class FormSeminar(forms.ModelForm):
class Meta:
model = SeminarProposal
fields = ['fileProposal','proposal']
ありがとうございます。 Terima Kasih。
あなたは「それは働いていない」とはどういう意味ですか?あなたは何か誤りがありますか? –
エラーは、関係がnullになることです。例外や類似のようなプロセスにエラーはありませんが、結果は 'prop = Proposal.objects.get(akun = request.user)と関連させたいときです。 form.proposal = prop print(form.proposal)#これが「None」ではないことを確認してください。 – juunnn
あなたの要件を理解するのに少し問題があります。理解を深めるために、変数を英語に変換するのが賢明かもしれないと思います。 –