私は、Twitterのようなフォローシステムを実装しようとしています(1人のユーザーが従うことができ、多くのユーザーが従うことができます)。私はいくつかの方法を試しましたが、私は間違いを続けています。現在、フォーム全体にデバッガーやステートメントをドロップするたびに、私は決してクリーンメソッドに入ることはなく、kwargには値が設定されていないことがわかります。シンプルなDjangoフォーム
私は、フォームへの引数としてfollower
& following
に渡し、ちょうど__init__
に割り当てることができるようにしたいが、すべてが間違って起こっています。私がJavascript(React & Redux)で応答を返すとき、私はすべてがエラーです。follower
& following
「このフィールドは必須です。
モデル
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=100, unique=True)
email = models.EmailField(unique=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_admin = models.BooleanField(default=False)
date_joined = models.DateTimeField(auto_now=True)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
class Meta:
verbose_name = 'user'
verbose_name_plural = 'users'
class UserFollow(models.Model):
follower = models.ForeignKey('User', models.CASCADE, related_name='follows')
following = models.ForeignKey('User', models.CASCADE, related_name='followed_by')
class Meta:
unique_together = ('follower', 'following')
def to_user(self):
return {
'id': self.pk,
'follower': self.follower.pk,
'following': self.following.pk
}
ビュー
def follow(request, id):
following = User.objects.get(pk=id)
form = UserFollowForm(follower=request.user, following=following)
if form.is_valid():
user_follow = form.save()
return JsonResponse({'user_followed': following.to_user()})
return JsonResponse({'error': form.errors}, status=400)
フォーム
を:ここでは、私がこれまで持っているものです
データとは、 'data = {....} 'のような引数を意味しますか?そして、あなたの第2のポイントとして、それは興味深い考えです。私は、フォームをすべてのものに使うというアイデアに慣れてきており、特に意図しているものを覚えているわけではありません。 –
答えに記載されているとおり、あなたがそれを扱う方法は、フォームを渡すことは無意味です。しかし、ええ、フォームを開始するには、 '' form = UserFollowForm(data = request.POST) '' 'を実行する必要があります。フィールドはキー名から塗りつぶされ、その他はkwargsで送られます – Bestasttung