2016-06-12 6 views
0

私が作成している新しいプロジェクトに関する質問があります。簡単に言えば、ウェブサイトにはユーザーアカウントがあり、各ユーザーは簡単な段落を作成できます。フォームは完全に機能していますが、ユーザーのIDを保存されたフォームに割り当てることはできません。ユーザーIDでmodelformを保存していますか?

model.py

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 

class Thoughts(models.Model): 
    user = models.ForeignKey(UserProfile, null=True) 
    title = models.CharField(max_length=150, default='') 
    description = models.CharField(max_length=5000, default='') 

forms.py

class ThoughtForm(ModelForm): 
    class Meta: 
     model = Thoughts 
     fields = ['title', 'description'] 

views.py

@login_required(login_url='sign_in') 
def add_thought(request): 
    context = {} 
    populateContext(request, context) 

    user_details = UserProfile.objects.get(user=request.user) 
    context.update(user_details=user_details) 

    if request.method == 'POST': 
    new_thought_form = ThoughtForm(request.POST) 

     if new_thought_form.is_valid(): 
      new_thought_form.save() 
      return HttpResponse('Hurray, saved!') 
    else: 
     new_thought_form = ThoughtForm() 


    c = {'new_thought_form': new_thought_form,} 
    c.update(csrf(request)) 

    return render_to_response('lala/add_new_thought.html', c) 

私は、 "インスタンス= user_details.id" を追加してみてくださいたびに、と言っています'int'オブジェクトには属性 '_meta'がありません。何かご意見は?

答えて

3

あなたはUserProfileモデルを除去することによって、モデルを簡素化することができます。

# models.py 

class Thoughts(models.Model): 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    title = models.CharField(max_length=150, default='') 
    description = models.CharField(max_length=5000, default='') 

あなたforms.pyがよさそうです。

はあなたのビューを変更し

# views.py  

@login_required(login_url='sign_in') 
def add_thought(request): 
    if request.method == 'POST': 
     form = ThoughtForm(request.POST) 
     if form.is_valid(): 
      thought = form.save(commit=False) 
      thought.user = request.user 
      thought.save() 
      return HttpResponse('Hurray, saved!') 
    else: 
     form = ThoughtForm() 
    return render(request, 'lala/add_new_thought.html', { 
     'form': form 
    }) 
+0

作品を!流れてくれてありがとう! – Bob

関連する問題