現在ログインしているユーザーが新しいステータスを投稿できるフォームを作成しようとしています。モデルフォームを使用しています。ページを読み込んでもエラーは発生しませんが、データが投稿されていないようです。だから私の質問は、これを取得して現在のユーザーの新しいステータスを投稿する方法ですか? これが私の現在のコードです:
私の見解:
@login_required
def post(request, username):
logged_user = request.user
newpostform = PostForm(instance=request.user.get_profile(), data=request.POST)
if newpostform.is_valid():
newpostform.save()
newpostform = PostForm()
context = {'newpostform': newpostform,}
return render(request, 'twitterclone/newpost.html', context)
私のフォーム:
class PostForm(ModelForm):
class Meta:
model = Post
私のモデル:
class Profile(models.Model):
user = models.ForeignKey(User)
bio = models.TextField()
image = models.ImageField(upload_to='images/%Y/%m/%d')
following = models.ManyToManyField('self', blank = True, null = True)
def __unicode__(self):
return unicode(self.user)
class Post(models.Model):
profile = models.ForeignKey(Profile)
body = models.CharField(max_length=140)
pub_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return unicode(self.body[:50])
私のテンプレート:
<form action="" method="POST">
{% csrf_token %}
{{newpostform.body}}
<button>Tweet It</button>
</form>