Django CSRF protection will allow OPTIONS requests, so no problem with the first step:
https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-it-works
If I understand correctly, you want the next request (for example, cross-domain POST) to be resolved. For this to work and pass after Django CSRF protection, the request must send the CSRF token (in the POST data or in the header for AJAX) and the corresponding CSRF cookie.
Now, cross-domain restrictions make it impossible for abc.com to set or read cookies for xyz.com, whether from javascript or from a server-side response. Therefore, such an approach is impossible.
Instead, you will need to apply @csrf_exempt to the view. This will allow any site to post. Therefore, you will need to create some other protection for the submission. Of course, you yourself check the security of your defense. Remember that the Referer and Origin headers can be easily faked with something basic like curl.
spookylukey
source share