2016-09-27 13 views
0

私はidをModelChoiceFieldの整数形式で取得しようとしています。表示するリストを取得しますが、getは文字列形式で返されます。 ModelChoiceFieldのIDを取得するのを手伝ってください。私はこの見方でこれを行う必要があると思う。私が言うことができるものから、モデルの選択フィールド - idを取得

forms.py 
class ProjectForm(forms.ModelForm): 
    items = forms.ModelChoiceField(queryset=Project.objects.all()) 

    class Meta: 
     model = Project 
     fields = ['items'] 

models.py 
class Project(models.Model): 
    items = models.IntegerField(default=0, blank=True, null=True) 

views.py 
def ProjectView(request): 
    form = ProjectForm(request.POST) 

    if request.method == 'POST': 
     if form.is_valid(): 
      save_it = form.save(commit=False) 
      save_it.save() 
      return HttpResponseRedirect('/')  
    else: 
     form = ProjectForm() 

return render(request, 't.html', {'form': form }) 
+0

私はあなたがここで解決しようとしている問題を理解していません。どこにリストが表示されますか?文字列形式で返されるものは何ですか? – Sayse

+0

あなたのモデルやフォームが意味をなさないので、ここで何をしようとしているのか教えてください。 –

+0

プロジェクトのリストのドロップダウンリストがitems変数に表示されます。私はqueryset = Project.objects.all()のIDを取得しようとしているモデルに送信します。 –

答えて

0

itemsIntegerFieldてはいけません。ご使用方法は、それはそうあなただけのアイテムよりも良い、わかりやすい名前でおそらくその明示的な

items = models.ForeignKey('self', null=True, blank=True) 

をしなければならないForeignKeyProjectになるように設定しています。

次に、フォーム上に何も定義する必要はなく、標準モデルフォームとなり、標準モデルフォームの使用法となります。

+0

よろしくお願いいたします。これは私が最初に試したもので、うまくいきました。しかし、プロジェクトモデルのいくつかの変数のルックアップテーブルとしてプロジェクトを使用するとしますか?ルックアップテーブルは機能しません。 –

+0

@CodingBear - これは意味をなさない...あなたの実際の使用法やあなたのモデルがそれをどのように促進するかについて再考する必要があるように思えます。 – Sayse

+0

ありがとうございます。ルックアップテーブルの実装についてはどうすればよいですか? –

関連する問題