0

django アプリでユーザーのオブジェクトを保存してフィルター処理したいと考えています。以下のコードを入力した後、imagefield はデータベースに画像をアップロードせず、テンプレートに画像を返しません。

モデル

class Fin(models.Model):
    user=models.ForeignKey(User)
    title=models.CharField(max_length=250, help_text='3 bedroom flat for lease')
    main_view=models.ImageField(upload_to="photos",blank=True, null=True)
    side_view=models.ImageField(upload_to="photos",blank=True, null=True)
    address=models.CharField(max_length=200)
    city=models.CharField(max_length=200)
    state=models.CharField(max_length=200)
    guideline=models.TextField(max_length=1000)

   def __unicode__(self):
       return self.title


 class FinForm(ModelForm):
   class Meta:
      model=Fin
     fields=('title','main_view','side_view', 'address','city','state','guideline')
     exclude=('user')

ビュー

     def fincrib(request):
          extra_data_context={}
          #if there's nothing in the field do nothing.
          if request. method=="POST":
             form =FinForm(request.POST)
             if form.is_valid():
                data=form.cleaned_data
                newfincribs=Fin(
                   user= request.user,
                   title=data['title'],
                   main_view=data ['main_view'],
                   side_view=data['side_view'],
                   address=data['address'],
                   city=data['city'],
                   state=data['state'],
                   guideline=data['guideline'])
               newfincribs.save()
             extra_data_context.update({'FinForm':form})
      else:
          form = FinForm()
          extra_data_context.update({'FinForm':form})
      extra_data_context.update({'Fins':Fin.objects.filter(user=request.user)})
      return render_to_response('post.html',extra_data_context,context_instance=RequestContext(request))

テンプレート

     {% block content %}
        <form action="." method="POST">
            {% csrf_token %}
    <center> {{FinForm.as_p}}  </center>
       <input type="submit" value="Submit"/>
       </form>

         {% for Fin in Fins %}
             <tr>
            <a href="{% url profiles_edit_profile %}"> {{Fin.user}} </a> </p> </strong>
             <p>{{Fin.title}}</p>
             <p><img src="{{MEDIA_URL}}/{{Fin.main_view}}"/></p>
             <p> <img src="{{MEDIA_URL}}/{{Fin.side_view}}"/></p>
              <p> {{Fin.address}} </p>
              <p> {{Fin.city}}</p>
              <p> {{Fin.state}}</p>
              <p> {{Fin.guideline}}</p>
              {% endfor %}
           {% endblock %}
4

2 に答える 2

2

テンプレートとビュー レイヤーで多くのものが欠落しています。

これを読んでください: https://docs.djangoproject.com/en/1.3/topics/http/file-uploads/#basic-file-uploads

于 2012-06-05T18:23:59.867 に答える
0

django の公式ドキュメントから、アップロードされたファイルをフォームにバインドする方法をお読みください。役立つと思います。

于 2012-06-05T18:25:41.133 に答える