I'm not sure if this is a worthwhile abstraction.  Why not just
 
        return self.url_base + reverse('receiver_post_with_app_id', args=[self.domain, self.copy_of or self.get_id])

?

For me this falls under "explicit is better than implicit" and "simple is better than complex" from the Zen of Python.  Is it really worth it?  

As someone reading this code for the first time, or coming back to it after a while, I would probably often end up looking up exactly what full_hq_url does (I had a hunch from the beginning but it took a few seconds to read the function and verify) and/or look for places that called `foo.post_url` to see whether they were using it as a method or attribute, because property-like decorators other than property are unusual and it's not 100% obvious what @full_hq_url does.  But with a simple @property that uses self.url_base, it's much more apparent at a glance what these methods were and I would probably just assume they did what it looked like they did.

What if someone decides they want this for the models in another app, and so they move it to hqwebapp or dimagi-utils, and then I have to look in another module if I want to know exactly what post_url is?  Is it worth it then?

Even if it is worth it, I would consider changing the name to

@full_hq_url_property

or even

@absolute_url_property

and moving it to dimagi-utils and changing it to use get_url_base() instead of self.url_base.