2017-04-16 73 views
0

選擇請求我做了一個選擇django形式與每個用戶的圖像列表。從django從

如何在我的views.py中選擇請求?

我只設法創建正確的選擇列表,但我需要採取該選擇請求。但我不知道如何。

models.py

class MyModel(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    upload = models.ImageField(upload_to='upload') 

views.py

@login_required(login_url="login/") 
    def carlist(request): 
     Myform = MyModelForm(user=request.user) 
     return render(request,'about.html',{'Myform':Myform}) 

選擇django的形式:

class MyModelForm(ModelForm): 
    def __init__(self, *args, **kwargs): 
     # extract "user" from kwrags (passed upon form init) 
     if 'user' in kwargs: 
      self.user = kwargs.pop('user') 
     super(MyModelForm, self).__init__(*args, **kwargs) 
     # generate the choices as (display, value). 
     # Display is the one that'll be shown to user, value is 
     # the one that'll be sent upon submitting 
     # (the "value" attribute of <option>) 
     choices = MyModel.objects.filter(user=self.user).values_list('upload', 'id') 
     self.fields['upload'].widget = Select(choices=choices) 

    class Meta: 
     model = MyModel 
     fields = ('upload',) 

HTML:

<form class="" action="" method="post" enctype="multipart/form-data"> 
{% csrf_token %} 
    {{ Myform}} 
<input type="submit" name="" value="Submit"> 

例如Myform現在有一個用戶圖像列表,這是正確的,但之後,我需要從窗體中選擇的圖像。

可以用我的代碼來做到嗎?

回答

0

是的,你可以用你的代碼做到這一點。在你看來,你可以得到它:

class MyView(View): 
    def post(self, request): 
     form = MyModelForm(request.POST, request.FILES) 
     if form.is_valid(): 
       upload_inst = form.cleaned_data['upload'] 
       ...   

這會給你從表單中選擇的圖像。

如果你想有被選擇的多張圖片,你可以嘗試以下方法: