ошибка скрытого поля в django - PullRequest
0 голосов
/ 06 июня 2010

Я создаю систему сообщений для виртуального сообщества, но я не могу взять идентификатор userprofile

У меня есть в views.py

def save_message(request):
   if request.method == 'POST':
        form = MessageForm(request.POST)
        if form.is_valid():
           new_obj = form.save(commit=False)
           new_obj.sender = request.user
           u = UserProfile.objects.get(request.POST['userprofile_id'])
           new_obj.owner = u
           new_obj.save()
           return HttpResponseRedirect('.')    
   else:
           form = MessageForm()     
   return render_to_response('messages/messages.html', {
           'form': form,
           }, 
          context_instance=RequestContext(request))  

и шаблон:

{% block primary %}
<form action="." method="post">
    {{ form.as_p }}
<p><input type="hidden" value="{{ userprofile.id }}" name = "owner" /></p>
<p><input type="submit" value="Send Message!" /></p>
</form>
{% endblock %}

forms.py:

class MessageForm(ModelForm):
    class Meta:
          model = Messages
          fields = ['message']

models.py:

class Messages(models.Model):
     message = models.CharField(max_length = 300)
     read = models.BooleanField(default=False)
     owner = models.ForeignKey(UserProfile)
     sender = models.ForeignKey(User) 

Я не понимаю, почему я получаю эту ошибку, так как я просто пытаюсь получить ID профиля пользователя, используя поле hiddeen.

ошибка:

Key 'UserProfile_id' not found in <QueryDict: {u'owner': [u''], u'message': [u'fdghjkl']}>

и я получаю его после того, как заполню текстовое поле сообщения. Спасибо!

Ответы [ 2 ]

1 голос
/ 06 июня 2010

должно быть

           u = UserProfile.objects.get(request.POST['owner'])

потому что имя входа - владелец !!

0 голосов
/ 06 июня 2010

Можно ли установить повышение (повысить Exception, request.POST) перед строкой: u = UserProfile.objects.get (request.POST ['userprofile_id']) *

И покажи мне вывод.

...