擅长:python、mysql、java
<p>我们最近实现了这样一个表单。以下是我们所做的:</p>
<ul>
<li><p>创建一个新的<code>backend</code>(只需从默认后端复制它即可)</p>
<pre><code>registration/
backends/
default/
custom/ # <- your new backend
</code></pre>
<p>。。。</p></li>
<li><p>在新的<code>urls.py</code>中,调整后端参数</p>
<pre><code>...
{ 'backend': 'registration.backends.custom.DefaultBackend' },
...
</code></pre></li>
<li><p>在<code>custom</code>下创建<code>forms.py</code>。根据您的喜好调整此表单(字段和验证)</p></li>
<li><p>在<code>registration/urls.py</code>中,指向正确的后端:</p>
<pre><code> # from registration.backends.default.urls import *
from registration.backends.custom.urls import *
</code></pre></li>
</ul>
<p>那应该行得通。尤其是这样做是因为:</p>
<ul>
<li><p>您的<code>custom/__init__.py</code>将有一个<code>DefaultBackend</code>类,该类有一个<code>get_form_class</code>方法:</p>
<pre><code>def get_form_class(self, request):
"""
Return the default form class used for user registration.
"""
return RegistrationForm
</code></pre></li>
<li><p>您也可以在该文件中导入您自己的<code>RegistrationForm</code>:</p>
<pre><code>from registration.backends.custom.forms import RegistrationForm
</code></pre></li>
</ul>