フォームを送信すると、空白のフォームが表示され、各フィールドに「フィールドが必要です」と表示されます。しかし、私はそれを再び記入して提出すると、それは動作します。これを行う理由は何ですか?djangoで有効なフォームを提出した後、すべてのフィールドに「フィールドが必要です」が表示されるのはなぜですか?
def forum_modules(request):
if request.method == 'POST':
pform = PostForm(data=request.POST, prefix='PostForm')
if pform.is_valid():
new_post = pform.save(commit=False)
new_post.user = request.user
new_post.save()
return HttpResponse("Post was successfully added")
else:
pform = PostForm()
return render(request, 'forum/forum_modules.html', 'pform': pform})
PostForm:
class PostForm(ModelForm):
class Meta:
model = Post
fields = ['title', 'body']
exclude = ['user']
Postモデル:
class Post(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,)
title = models.CharField(max_length=100)
body = models.TextField()
date = models.DateField(auto_now_add=True, blank=True)
likes = models.IntegerField(default=0, blank=True)
def __str__(self):
return self.title
コードはわかりやすく表示されます。関数にブレークポイントを挿入し、各行の実行方法を追跡するには 'pdb'を使う必要があります。また別のブラウザを試してみてください。 –
は 'PostForm'のコードを表示します – v1k45