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