У меня есть HTML-страница, которая возвращает данные в форме. Формы - это поле с несколькими вариантами выбора с "name=states1"
. Когда я запускаю print (vars (self)) в моем forms.py, я вижу, что данные там ['MD', 'WV', 'WY']
(см. Ниже), однако, когда я пытаюсь извлечь их с помощью print(self.data['states1'])
, я просто получаю 'WY' и print(len(self.data['states1']))
возвращает 2.
{'instance': <AA: AAobject>, '_validate_unique': False, 'is_bound': True, 'data': <QueryDict: {'csrfmiddlewaretoken': ['AAAAA']: ['1'], 'states1': ['MD', 'WV', 'WY'], 'states': [''], 'price': ['2.00'], 'user': ['1', '1']}>, ...
Однако, когда я бегу
import json
print(json.dumps(self.data, indent=2))
Я получаю следующий вывод
{
"csrfmiddlewaretoken": "AAAAA",
"roles": "1",
"states1": "WY",
"states": "",
"price": "2.00",
"user": "1"
}
Данные просто исчезли. Почему мои данные ограничены последним полем, когда я отчетливо вижу их, когда смотрю на переменные?
forms.py
class UserProfileChangeForm(forms.ModelForm):
states = forms.CharField(widget=USStateSelect(), initial='TX', required=False)
class Meta:
model = SkilledLaborer
fields = ['user','roles','travel_flag','price','states']
def clean_states(self):
print('states')
states = self.cleaned_data['states']
print(type(vars(self)))
print(vars(self).keys())
print(vars(self))
print(self.data.keys())
print(self.data['states1'])
print(len(self.data['states1']))
import json
print(json.dumps(self.data, indent=2))
try:
self.data['states1']
except:
pass
return states