Ошибка Argument of type 'NoneType' is not iterable
и не может понять, почему.Аргумент типа «NoneType» не повторяется при попытке обновить объект модели
Это происходит на линии if model_form.is_valid():
Views.py
def update_model(request, pricemodel_id):
""" Update a part given its id. """
pricemod = Part.objects.get(id=pricemodel_id)
if request.method == "POST":
print "post request"
model_form = priceform(request.POST, request.FILES, instance=pricemod)
model_form.is_update = True
if request.user == pricemod.adder:
#from ipdb import set_trace; set_trace()
if model_form.is_valid():
Forms.py
class priceform(ModelForm):
# price Form: form associated to the Part model
def __init__(self, *args, **kwargs):
super(priceform, self).__init__(*args,**kwargs)
self.is_update=False
choices = UniPart.objects.all().values('manufacturer').distinct()
def clean(self):
if self.cleaned_data and 'modelname' not in self.cleaned_data:
raise forms.ValidationError("Some error message")
if not self.is_update:
return self.cleaned_data
return self.cleaned_data
class Meta:
model = Part
Благодаря могли бы вы действительно кратко объяснить, что чистый метод делает и как делает is_valid метод знать, чтобы проверить это? – user1328021
'is_valid' вызывает цепочку методов, которая выполняет проверку. Последняя часть: 'clean_' методы вызываются для каждого поля, а затем 'clean'. 'clean_ ' метод проверяет данные исключительно для '' поля. В 'clean',' self.cleaned_data' содержит данные, уже проверенные соответствующими методами 'clean_ '. Таким образом, здесь могут быть проверены некоторые общие правила и правила, связанные с двумя или более связанными полями, когда для ex. одно поле должно учитывать другое поле. Вот [подробный документ] (https://docs.djangoproject.com/en/dev/ref/forms/validation/) –
stalk