python - Using Generic Foreign Keys to retrieve data -
i have class streams
in model.py supposed have generic foreign key class type (commentdata
or responsedata
)
when streams row want access info in class same id. instance, when create stream db entry create commentdata db entry same id , row have genericforeignkey commentdata
. when want access comment info check related class stream , query content type rows id = stream.id
this in streams class:
limit = models.q(app_label='picture', model='commentdata') | models.q(app_label='picture', model='responsedata')` content_type = models.foreignkey(contenttype, verbose_name='data type', limit_choices_to=limit, null=true, blank=true) object_id = models.positiveintegerfield(verbose_name='related object', null=true, blank=true) content_object = genericforeignkey('content_type', 'object_id')
in django admin can savestreams
content type either(commentdata
or responsedata
) fine.
if along lines of
x = streams.objects.all() y = x[0].content_type
i can output class streams related to. can't y.objects.all()
related class error
manager isn't accessible via contenttype instances
is there anyway utilize contenttype manager find information? contenttype.objects.get_for_model(x[0])
returns class stream
. contenttype.objects.get_for_model(y)
returns content type.
thank you
ok. see you're doing. first, there no way trying using content_types api. can done.
as stated:
x = streams.objects.all() # stream objects y = x[0].content_type # commentdata contenttype object
so need utilize basic django orm this:
from django.db.models.loading import get_model x = streams.objects.all() # stream objects y = x[0].content_type # commentdata contenttype object model_class = get_model(app_label=y.app_label, model_name=y.model) model_class.objects.all() # objects of type
python django foreign-keys
No comments:
Post a Comment