-
、+
、/
、*
、またはその他の数学的文字記号をrelated_name
に含めることができません。 :
、|
、または.
も使用できません。関係のDjangoモデルのrelated_nameにはどのような文字制限がありますか?
あなたはDjangoのmodels.py
が検証されますが、クエリの検索を行うたび、それは
Q(userprofile.user__place__managers=user)
SyntaxError: keyword can't be an expression
私は特殊文字を使用したい理由のようなエラーがスローされます、related_name
に上記のいずれかの文字を持っている場合私はrelated_name
を{class_name}{field_name}
という形で持っているからです。だから私は、下位の関係以下の関係クエリを実行するときUserProfile
モデルクラスのために、たとえば、私は
class UserProfile(models.Model)
user = models.OneToOneField(User, related_name='userprofile-user')
user_type = models.ManyToManyFields(UserType, related_name='userprofile-user_type')
のようにそのように何かをするだろうが、まだ私は後方にそれを次のですか知っています。例えば、私は単に
user_type = models.ManyToManyFields(UserType, related_name='user_type')
をすれば、私はUser.objects.get(pk=1).user_type.all()
をやってUser
からUserType
にアクセスすることができます。しかし、これはuser_type
のように見えますが、フィールドはUser
です。代わりに
私はUser.objects.get(pk=1).userprofile-user_type.all()
ような何かを行うことができれば、私は私がUser
UserProfile
からUserType
に行くのだということを知っているだろう。
私の考え方はおそらく少数派であり、ほとんどの人はちょうどrelated_name='user_type'
か、あるいはデフォルトのuser_type_set
を使っていると思います。
もう1つ質問があります:related_name
という名前のいいスタイルは何ですか?
回答には良い情報がありますが、意味が分かりにくいです。 TL; DR集団の場合:アルファベットとアンダースコアを付けるだけです(小文字)。 –