python - Is it possible to use a PositiveIntegerField as a foreign key in Django? -
consider following 2 django models:
class item(models.model):     '''     represents single item.     '''     title = models.textfield()  class information(models.model):     '''     stores information item.     '''     approved           = models.booleanfield(default=false)     multipurpose_field = models.positiveintegerfield() due way models organized, forced use positiveintegerfield in information referencing item instead of using foreignkey. makes queries more difficult.
i select items referenced information instance approved set true. in other words, this:
information.objects.filter(approved=true) ...except query return instances of information instead of item referenced in multipurpose_field.
i raw sql:
select app_item.title app_item   left join app_information   on app_information.multipurpose_field = app_item.id   app_information.approved = 1 is there way without resorting raw sql (which isn't portable)?
foreignkey's field type determined related field. consider redesigning models way:
class item(models.model):     id    = models.positiveintegerfield(primary_key=true)     title = models.textfield()  class information(models.model):     approved           = models.booleanfield(default=false)     multipurpose_field = models.foreignkey(item) then query represented way:
item.objects.filter(information__approved=true) 
Comments
Post a Comment