I believe the problem is that you're running into a Django limitation:
ForeignKey fields auto-create a <field>_id
attribute at the database level, so you cannot have both a model field named source_id
and a ForeignKey source
field, which causes the clash.
As @willeM_VanOnsem suggested, use an @property
as a limited workaround.