I am sure it is not enough money for 20 days. Imagine that you have average 15 euros/day which is not much. In which city will you stay? Consider daily transportation, meals, going out for a movie or something which are not so cheap.
Also, consider having an extra credit card with you just in case you will need extra money, to spare you for uncomfortable situations.
Very important is to have a health insurance, because if anything happens maybe you will have to pay first and after you come back in your country you will get the money back.
Enjoy your stay!
Are you serious? You are traveling across half of the world, so 300 EUR is definitely not enough to stay 20 days in Spain. Even if your boyfriend is feeding you there. Imagine if you two break up in Spain, what are you going to do then? Its better to be safe then sorry.
It depends of course if you eat at home or in restaurant and if you travel or you will remain in the same place. In any case 300 euro I believe it is not a lot. If you don't want to travel with money, check if your credit card has cirrius network. With it you can easily withdraw cash from bancomat of many banks without big surcharge (as 4% for credit cards). Feel free to ask if you any other advice.
You can calculate about