0

Django のモデルのコードに従う必要があります。

class User(models.Model):
    username = models.CharField(max_length=50, unique=True)
    password = models.CharField(max_length=15)

class Follows(models.Model):
    user = models.ManyToManyField(User, related_name = 'Isread+')
    follower = models.ManyToManyField(User, related_name = 'Reads+')

これを行おうとすると、エラーが発生します。

>>> from twitter.models import *
>>> u1 = User.objects.all()[0]
>>> u2 = User.objects.all()[1]
>>> Follows.objects.create(user = u1, follower = u2)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Python33\lib\site-packages\django\db\models\manager.py", line 149, in create
    return self.get_query_set().create(**kwargs)
  File "C:\Python33\lib\site-packages\django\db\models\query.py", line 414, in create
    obj = self.model(**kwargs)
  File "C:\Python33\lib\site-packages\django\db\models\base.py", line 415, in __init__
    raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
TypeError: 'follower' is an invalid keyword argument for this function

なぜこれが起こるのか誰にも分かりますか?事前にt​​hx。

4

1 に答える 1

1

ManyToManyField があるので、最初にFollowsオブジェクトを作成 (保存) する必要があります。これにより、多対多の関係が機能するために主キーが設定されます。さらに、関係に項目を追加するには、ManyToManyManager を使用する必要があります。

つまり、これを行う必要があります。

f = Followers()
f.save()
f.user.add(u1)
f.follower.add(u2)
f.save()
于 2013-10-26T20:25:53.907 に答える