title: Django model foreignkey or charfield?
body: <p><a href="https://i.stack.imgur.com/WJgnQ.png" rel="nofollow noreferrer">Django Model and Form that I want to make</a></p>
  <p>Hello. I'm fairly new to Django and I have a hard time understanding which model field to use. I didn't post any code because my code is so messy right now and most of it still following &quot;Django for Beginner&quot; book by William S. Vincent.</p>
  <p>I have an app consisting 2 models, <code>Product</code> model and <code>Production</code> model. Some fields on production model are linked to product model. Then from production model, I make a form for user input using <code>ModelForm</code>. (There's a link to an image to help understanding model and form relation.)</p>
  <p>I have several questions regarding this matter.</p>
  <ol>
  <li>If I set <code>product_id</code> on <code>Production</code> Model as <code>ForeignKey</code> to <code>Product</code>, what field should I use for <code>product_name</code> and <code>material</code>?</li>
  <li>When I use <code>CharField</code> for both <code>product_name</code> and <code>material</code>, there are entry for both <code>product_name</code> and <code>material</code> on form and I don't want that. How to change it to readonly and have value updated based on <code>product_id</code>? (I'm not sure if this is related to Django form or not.)</li>
  <li>Right now I'm using <code>ModelForm</code> to make <code>Production</code> form and then using <code>FormView</code> to render the form. Is it the right approach? What is the difference between this one and <code>CreateView</code> from model?</li>
  </ol>
  <p>Thank you in advance for any comments and answers.</p>