擅长:python、mysql、java
<p>我在<a href="https://groups.google.com/forum/#!topic/django-developers/zL_eMRHanE4" rel="nofollow noreferrer">Django developers mailing list</a>中询问过,我被告知自己不要操纵字段的顺序,而是使用<a href="https://docs.djangoproject.com/en/3.0/ref/forms/api/#notes-on-field-ordering" rel="nofollow noreferrer">here</a>中记录的受支持的API方法。因此,我更改了代码并使用了<code>self.order_fields</code>:</p>
<pre><code>class LocalizedFirstLastNameMixin(object):
def __init__(self, *args, **kwargs):
self.language_code = kwargs.pop('language_code', 'en')
super().__init__(*args, **kwargs)
localized_fields = self.get_localized_fields()
for loc_field in localized_fields:
self.fields[loc_field] = User._meta.get_field(loc_field).formfield()
self.fields[loc_field].required = True
self.initial[loc_field] = getattr(self.instance, loc_field, '')
self.order_fields(field_order=localized_fields)
</code></pre>
<p>请注意,我只对前两个字段进行排序。所有其他字段都保持默认顺序。我现在也不必按相反的顺序添加字段</p>