0

私は次のモデルを持っています:

class mark(models.Model):
    title=models.CharField(max_length=35)
    url=models.URLField(max_length=200)
    user=models.ManyToManyField(User,blank=True)

次に、フォームを使用してデータをデータベースに保存します。データを保存するビュー内の私のコードは次のとおりです。

new_mark= mark(url=request.POST['url'],
                           title=request.POST['title'],
                           user=request.user)
new_mark.save()

もちろん、私はすべてのデータ検証、ログインに必要な検証などを持っています。これを実行すると、予期しないものがスローされます

'user' is an invalid keyword argument for this function

ライン上user=request.user)。何が間違っているのでしょうか?

4

1 に答える 1

1

トレースバック全体を提供し、ビューに「mark」などの名前の関数がないことを確認してください (おそらく、Python および Django スタイル ガイドに従うために変更markすることも必要です) 。Markprint type(mark)"new_mark = …"

また、ManyToMany フィールドがそのような設定データを許可するかどうかは 100% わかりません。

new_mark= mark(url=request.POST['url'],
                       title=request.POST['title'])
new_mark.user.add(request.user)
new_mark.save()

これは m2m フィールドであるため、フィールドの名前を users に変更することをお勧めします。

于 2012-04-20T21:24:54.217 に答える