2016-10-04 21 views
0

ユーザーIDに基づいてドロップダウンをフィルタリングする方法がわかりません。Django - ユーザーIDに基づいてドロップダウンをフィルタリングする方法は?

ない私は、ユーザID 2.

enter image description here

モデル

@python_2_unicode_compatible # only if you need to support Python 2 
class PredefinedMessage(models.Model): 
    user = models.ForeignKey(User) 
    list_name = models.CharField(max_length=50) 
    list_description = models.CharField(max_length=50) 

    def __str__(self): 
     return self.list_name 

class PredefinedMessageDetail(models.Model): 
    predefined_message_detail = models.ForeignKey(PredefinedMessage) 
    message = models.CharField(max_length=5000) 

ビュー

ために、まさにこのようにしたいユーザーID 2.

enter image description here

のためにしたいです

class PredefinedMessageDetailForm(ModelForm): 
    class Meta: 
     model = PredefinedMessageDetail 
     fields = ['predefined_message_detail', 'message'] 
     exclude = ('user',) 

def predefined_message_detail_update(request, pk, template_name='predefined-message/predefined_message_detail_form.html'): 
    if not request.user.is_authenticated(): 
     return redirect('home') 
    predefined_message_detail = get_object_or_404(PredefinedMessageDetail, pk=pk) 
    form = PredefinedMessageDetailForm(request.POST or None, instance=predefined_message_detail) 
    if form.is_valid(): 
     form.save() 
     return redirect('predefined_message_list') 
    return render(request, template_name, {'form':form}) 

htmlファイル

{% extends "base.html" %} 
{% load i18n %} 

{% block content %} 
<form method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Submit" /> 
</form> 
{% endblock %} 
+0

ModelFormのフィールドQueryset属性をカスタマイズしてください。 – Rajesh

+0

どうすればいいですか? –

答えて

1

あなたが

form = PredefinedMessageDetailForm(request.POST or None, instance=predefined_message_detail) 
form.fields["predefined_message_detail"].queryset= PredefinedMessage.objects.filter(user=request.user) 

を使用してビュー自体でそれを行うことができますが、フィルタリングはrequest.userので、それがログに記録されなければならないin.Considerも基づいて行われます。これがうまくいきたいです

+0

'PredefinedMessageDetailForm'オブジェクトに 'predefined_message_detail'属性のメッセージがありません –

+0

両方を試しましたか? 'predefinedMessageDetail" = PredefinedMessage.objects.filter(user = request.user) ' – itzMEonTV

+0

両方を試しても、 'PredefinedMessageDetailForm'オブジェクトには属性 'predefined_message_detail'がありません。 –

関連する問題