2015-05-19 78 views
0

我正在嘗試添加多個將相關對象與使用Django的父對象相關聯。
錯誤,我得到:int() argument must be a string or a number, not 'Tag'使用Django將多個相關對象添加到父模型

我的代碼如下所示:

def ask(request): 

    form = AskQuestionForm 

    if request.method == 'POST': 

     form = AskQuestionForm(request.POST) 

     if form.is_valid(): 

      tags = request.POST.getlist('tags') 

      # Category 
      qcat = Category.objects.filter(id=request.POST.get('category')).first() 

      o = Question.objects.create(
       title = request.POST.get('title'), 
       body = request.POST.get('body'), 
       category = qcat, 
       user = request.user 
      ) 

      for t in tags: 
       rt = Tag.objects.get_or_create(word=t) 
       o.tags.add(rt) 

      return redirect('questions.index') 

    return render(request, 'questions/ask.html', { 
     'form' : form 
    }) 

我想添加標籤質疑的對象。我究竟做錯了什麼?

回答

2

get_or_create()返回元組(object, created)。因此,將標記創建更改爲:

rt, _ = Tag.objects.get_or_create(word=t) 
+0

什麼是下劃線? – intelis

+0

它只是變量的名稱。如果你願意,你可以命名爲'created':'rt,created = ...' – catavaran

+0

太好了,現在正在工作 – intelis

相關問題