I have gone through your question and I understood it.
I had faced the similar issue in the past and so know the solution on it.
Please note that the mycompany is the queryset.
The QuerySet value for the exact lookup must be limited to one result using slicing.
Instead of this please try to follow below approach:
myproduct = MyProduct.objects.filter(mycompany=mycompany, pk=product_pk)
try below correct line of code :
myproduct = MyProduct.objects.filter(mycompany__in=mycompany, pk=product_pk)
__in can handle the querysets larger than the one with multiple records of a table.
This can be found in your django Many-to_one relationships section of given documentation. https://docs.djangoproject.com/en/2.0/topics/db/examples/many_to_one/
The Django documentation can be very scary for the beginners like you because of its length and the depth, though it provides solutions to most the issues if you can correctly understand it.