擅长:python、mysql、java
<p>在表单中,只能在<code>Meta</code>属性中引用关联模型的<code>fields</code>。由于将表单与<code>User</code>模型关联,因此无法从<code>Post</code>访问<code>phone</code>属性</p>
<p>而且<code>phone</code>确实应该是<code>User</code>数据的一部分。所以你有两种标准的方法。一个是创建另一个模型来存储额外的用户数据,并添加与<code>User</code>模型的一对一关系。大概是这样的:</p>
<pre class="lang-py prettyprint-override"><code>class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone = models.CharField(max_length=10)
</code></pre>
<p>另一种方法是定制<code>User</code>类。在这种情况下,您可以简单地扩展<code>AbstractUser</code>:</p>
<pre class="lang-py prettyprint-override"><code>from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
phone = models.CharField(max_length=10)
</code></pre>
<p>在这种情况下,您需要将以下内容添加到<code>settings.py</code>:</p>
<pre class="lang-py prettyprint-override"><code>AUTH_USER_MODEL = 'your_app.User'
</code></pre>
<p>所有这些信息都详细记录在Django的<a href="https://docs.djangoproject.com/en/3.2/topics/auth/customizing/#extending-the-existing-user-model" rel="nofollow noreferrer">documentation</a>上</p>