2012-08-16 20 views
10

Tôi đã gãi đầu FileField. FileField có yêu cầu một quá trình riêng biệt không?Tải lên tệp Django FileField không hoạt động đối với tôi

Mặc dù url của tôi được lưu .. nhưng tệp của tôi không được tải lên ... tôi đang làm gì sai?

Đây là models.py tôi ...

class OpLink(models.Model): 
    user = models.ForeignKey(User) 
    file = models.FileField(blank=True, null=True, upload_to="uploads") 
    url = models.URLField(blank=True, null=True) 

forms.py tôi

class OpLinkForm(ModelForm): 
    class Meta: 
     model = OpLink 
     exclude = ('user') 

views.py tôi

oplinkform = oplinkform(request.POST) 
       oplink = oplinkform.save(commit=False) 
       oplink.user = user 
       oplink.save() 

và html của tôi để xử lý nó.

<div class="span5"> 
          {{ oplinkform.url|add_class:"span4"|attr:"Placeholder:URL for the item" }} 
          <br><h4>OR</h4><br> 
          {{ oplinkform.file|add_class:"input-file" }} 
          <br /> 
          <input class='btn btn-primary btn-large' type="submit" value='Post' name='action'> 
</div> 
+1

tốt câu hỏi - có cùng một vấn đề và hoàn toàn quên rằng Tôi chỉ đọc ngày hôm qua khi học về FileField. Cảm ơn vì đã hỏi nó. – nicorellius

Trả lời

27

Bạn cần phải bao gồm các tập tin khi tạo dạng

oplinkform = oplinkform(request.POST, request.FILES) 

Cũng đảm bảo rằng hình thức của bạn có enctype đúng

<form enctype="multipart/form-data"></form> 
+2

rất đơn giản ;-) cảm ơn! +1 – nicorellius

+0

nó rất đơn giản nhưng bị thiếu do nhầm lẫn. Nhưng Mikael bạn tiết kiệm thời gian nhờ – Mohini

Các vấn đề liên quan