class A(models.Model):
pass
class B(models.Model):
a = models.ForeignKey(A)
content_type = models.ForeignKey(ContentType)
object_id = models.IntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
Как получить экземпляр A, связанный с некоторыми B-экземплярами по его параметрам. я пытаюсь сделать:select_related() с фильтром() + Q()
instances = { '1':10, '2':20, '3':30 }
for ct, id in instances.items():
qset |= Q(content_type=int(ct), object_id=int(id))
a = A.objects.all().select_related().filter(qset)
Это не работает с ошибкой: «Не удается разрешить ключевое слово„object_id“в поле.» Что я могу получить с помощью связанного B?
Thanx!
[PS] Теперь это работает, но не совсем так, как надо:
a_all = A.objects.all()
for a in a_all:
print a.a_set.filter(qset)
Спасибо, Микаэль. В это время я сделал это, но мне это не совсем удобно, потому что я получил точное соответствие с оригинальным экземпляром экземпляров B-экземпляров. В этом варианте осуществления будут получены любые B-экземпляры, совпадающие с одним из экземпляров dict-instance –