помогите пожалуйста разобраться в такой мистической ситуации
есть форма на основе модели:
model:
class Message(models.Model):
reciever = models.ForeignKey(
User,
verbose_name='Получатель',
related_name='recipient',
blank=False,
null=False,
)
theme = models.CharField(
'Тема сообщения',
max_length=200,
blank=True,
null=True,
)
text = models.TextField(
'Текст сообщения',
max_length=10000,
blank=False,
)
form:
class CreateMessageForm(forms.ModelForm):
class Meta:
model = Message
fields = (
'reciever',
'theme',
'text',
)
def clean_reciever(self):
reciever = self.cleaned_data['reciever']
if reciever != '':
raise forms.ValidationError("Это обязательное поле")
проблема в том, что в view не видна, переданная потосм переменная reciever = form.cleaned_data.get('reciever') or None.
то есть она равна None
view:
def message_create(request, id_reciever=None):
form = CreateMessageForm()
if request.method == 'POST':
form = MessageForm(request.POST)
if form.is_valid():
reciever = form.cleaned_data.get('reciever') or None
#reciever = request.POST.get('reciever', '')
theme = form.cleaned_data.get('theme') or None
text = form.cleaned_data.get('text') or None
obj_reciever = UserProfile.get_entry(user_id=int(reciever))
Message(
sender=request.user,
reciever=obj_reciever,
theme=theme,
text=text,
).save()
return HttpResponseRedirect('/messages/message_sended/')
t = loader.get_template('message_create.html')
c = RequestContext(request, {
'form': form,
}, [custom_proc])
return HttpResponse(t.render(c))
сообщение об ошике:
TypeError at /messages/message_create/
int() argument must be a string or a number, not 'NoneType'
при этом отладчик показывает, что $_POST['recieve'] при отправке формы уходит в view
при этом если в view получать значение так
reciever = request.POST.get('reciever', '')
, то проблемы нет
Updated 16 Oct. 2014, 16:28 by prozaik81-2.