0

次のようなpy

class User_(models.Model):
user_name = models.CharField(max_length=50)
user_password = models.CharField(max_length=50)
user_admin = models.BooleanField(False)

class Project_(models.Model):
project_name = models.CharField(max_length=20)
users = models.ManyToManyField(User_)
project_path = models.FilePathField()

そして今、次のように many_to_many フィールド users を使用しようとしました

    usr = User_.objects.get(user_name= userName) #it retrieves the correct object
    newProject = Project_(project_name=projectName)
    newProject.save()
    newProject.users.add(usr) #here is the error 
    newProject.save()

発生したエラーは次のとおりです。「キーワード 'user' をフィールドに解決できません。選択肢は次のとおりです: id、project_、user_」

そのエラーを修正できませんでした。ありがとう。

4

1 に答える 1

1

問題はテーブル名です...末尾のアンダースコアを削除すると、正常に機能します。

Django は のような m2m フィールドの中間テーブルを作成APP_MODEL1_MODEL2します。アンダースコアが原因で、ORM を混乱させる二重のアンダースコアが存在します。

于 2012-06-25T23:28:10.430 に答える