1
私はこのクエリーを数時間働かせようとしてきました。私はまだDjangoを初めて使っています。Djangoの複雑な内部結合
私はこれらのモデルは(簡体字)持って
class Job(models.Model):
country = models.ForeignKey(Country)
active = models.BooleanField()
class Country(models.Model):
name = models.CharField(max_length=100)
class State(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country)
class City(models.Model):
name = models.CharField(max_length=100)
state = models.ForeignKey(State)
class Worker(models.Model):
name = models.CharField(max_length=100)
addresses = models.ManyToManyField(Address)
class Address(models.Model):
address_field = models.CharField(max_length=100)
city = models.ForeignKey(City)
私は私の労働者は、上のアドレスを持っているすべての国のすべての個別およびアクティブなジョブを選択します。私は、これはforループ内のすべての労働者のアドレスを取得し、リスト内の国IDを保存し、
country_ids = []
for address in worker.addresses:
country_ids.append(address.city.state.country.id)
Q(country__id__in=[country_ids])
をやって働くだろうと思い
def get(self, request):
worker = Worker.objects.get(pk=request.user.id)
full_query = Q(active=True)
# my problem is here, since it is a ManyToMany Relationship
full_query &= Q(country__id__in=worker.addresses ??????)
jobs = Job.objects.filter(full_query)
しかし、私は、Djangoがあると思います。私の見解では、このコードを持っていますこれを行うよりエレガントな方法。
ありがとうございます!
を試してみてください。どうもありがとう! – somagrave
心配はいりません。天才ではなく、ちょうどDjangoクエリーセットで経験しました;) – ChidG