django - Generic Foreign Key with computed content type instead of fk to content type model -
the simplest case of creating generic foreign key this:
class modelwithgfk(models.model): content_type = models.foreignkey(contenttype, on_delete=models.cascade) object_id = models.positiveintegerfield() content_object = genericforeignkey('content_type', 'object_id')
but in case there other fields wich can infer content type from, adding content_type
fk both redundant , prone cause inconsistency on time. tried this:
class modelwithgfk(models. object_id = models.positiveintegerfield() content_object = genericforeignkey('content_type', 'object_id') @property def content_type(self): # figure out wich content type instance should have fk return contenttype.objects.get(..........)
but seems gfk class accepts content type argument foreign key:
def _check_content_type_field(self): """ check if field named `field_name` in model `model` exists , valid content_type field (is foreignkey contenttype). """
is there workaround (perhaps via overriding gfk , of methods get_content_type
) or shall give in, add fk , live in constant fear of inconsistency , agony of knowing (tiny) inevitable redundancy?
wiki
Comments
Post a Comment