2012-01-06 27 views
0

私はこのようなプレイリストやアイテムののModelFormを作成しました:このドロップダウンコンボボックスを避けるにはどうすればいいですか?

class playlistmodel(models.Model): 
    user = models.ForeignKey(User) 
    title = models.CharField(max_length=200) 
    def __unicode__(self): 
      return self.title 

class itemsmodel(models.Model): 
    playlist = models.ForeignKey(playlistmodel) 
    item = models.TextField() 

    def __unicode(self): 
      return self.item 
class playlistform(ModelForm): 
    class Meta: 
      model = playlistmodel 

class itemsform(ModelForm): 
    class Meta: 
      model = itemsmodel 

マイプレイリストビュー:私はまた、ログインスクリプトを設定した

​​

を。プレイリストを作成する必要がある場合は、ログインする必要があります。ログイン後にプレイリストを作成しようとすると、ドロップダウンコンボボックスにすべてのユーザーが表示され、ユーザーを選択してプレイリストのタイトルを入力します。無駄なドロップダウンボックスを削除する場合はどうすればいいですか?また、ドロップダウンボックスでプレイリストを選択して項目を入力するような項目ページも表示されます。

ありがとうございます。

+0

を。 http://stackoverflow.com/questions/5706040/django-modelform-with-excluded-field –

+0

あなたは自分自身で作成した管理者またはいくつかのビューについて話していますか? –

+0

@Brian Neal:Not admin – rnk

答えて

3

おそらくexplicitly include or exclude what fields you want displayed to the userが必要です。

これで、オブジェクトをデータベースに保存する前に、除外したオブジェクトの部分を手動で更新する必要があります。 ModelForm.save()メソッドの引数commit=Falsedescribed in the documentationと見てください。

例えば、あなたのコードは次のようなものに見えるかもしれません:あなたはこの質問を見てみたいことがあり

if form.is_valid(): 
    obj = form.save(commit=False) 
    obj.user = request.user 
    obj.save() 
+0

ユーザーフィールドとプレイリストフィールドを除外しても問題ありませんが、プレイリストのタイトルを作成するときに整合性エラーが発生します。 例外値:reg_playlistmodel.user_idがNULLでない可能性があります – rnk

+0

上記のreg_playlistmode.user_idのユーザーをデフォルトでrequest.userを使用して現在ログインしているユーザーに設定する方法 – rnk

+0

私の回答を、あなたはそれをどのようにすることができます。 –

関連する問題