12

このエラーがあります:

'people' は、この関数の無効なキーワード引数です

class Passage(models.Model):
    name= models.CharField(max_length = 255)
    who = models.ForeignKey(UserProfil)

class UserPassage(models.Model):
    passage = models.ForeignKey(Passage)
    people = models.ManyToManyField(UserProfil, null=True)

class UserProfil(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=50)

私は試します:

def join(request):
    user = request.user
    user_profil = UserProfil.objects.get(user=user)
    passage = Passage.objects.get(id=2)
    #line with error
    up = UserPassage.objects.create(people= user_profil, passage=passage)
    return render_to_response('thanks.html')

どうすればこれを正しく行うことができますか? ありがとう!

4

1 に答える 1

23

ManyToManyリレーションシップを追加する前に、オブジェクトを保存/作成する必要があります。

up = UserPassage.objects.create(passage=passage)
up.people.add(user_profil)

ManyToManyリレーションシップはテーブルの列として保存されません。良い説明については、ここで最初の返信を読んでください。

Django ManyToMany フィールドがモデルに作成されない

@DanielRoseman: ManyToMany はフィールドではないため、少なくともデータベース列として存在するフィールドではありません。リンクテーブルとの関係です。myapp_teacher_subjects という名前のテーブルが作成され、教師と科目の両方への外部キーが作成されていることがわかります。

于 2012-10-30T17:08:23.443 に答える