2つのオブジェクト、CompanyとAccountが異なるパッケージにあります。 従業員を介して多対多の関係を持ち、追加のフィールドis_adminを持っています。djangoの双方向多対多リレーションシップで両方のモデルからコレクションを取得する方法
会社で私はリレーションを定義し、オンラインで読むと、私はアカウント内のリレーションを修正する必要がないように思われます(これは循環インポートになります)。
CompanySerializerからすべてのアカウントを取得することは問題ありませんが、 ですが、アカウントに登録されているすべての企業も取得できる必要があります。
これが私の考えです:
勘定モデル:
class Account(AbstractBaseUser):
current_jobs = models.ManyToManyField(
Company, through='Employee') // I need to define current_jobs in some way
//,but this results in circular import
会社モデル:
class Company(models.Model):
employees = models.ManyToManyField(
settings.AUTH_USER_MODEL, through='Employee')
従業モデル:
class Employee(models.Model):
class Meta:
unique_together = ('user', 'company')
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
company = models.ForeignKey(Company, on_delete=models.CASCADE)
is_admin = models.BooleanField()
問題はどのように私意志、です今hoを定義するwの2つのシリアライザで各リストを取得します。 Companyシリアライザとアカウントシリアライザ...
私がcurrent_jobsを定義しないと、current_jobsが定義されていないというエラーが表示されます。
Hehe、私は非常にdjangoの新人です、そして、これは変数がどのように命名されたか分かりませんでした。私は愚かな質問をして申し訳ありません!これを見つけたはずです:)しかしそれは私の問題を解決したので、ありがとう! – Patidati