私のdjangoアプリケーションでは、管理アプリケーションと同じデータを追加しても、フォームは真を返すことはありません。私が使用している場合、私はそれが正常に動作し得ることができますDjango形式is_valid常にfalse
<html>
<body>
<form enctype="multipart/form-data" action="/image/uploadImage" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
</body>
</html>
:よう
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from competition.models import Image, UploadForm
# Create your views here.
def index(request):
images = Image.objects.all().order_by('emailAddress')
return render_to_response('images/index.html', {'images': images})
def uploadImage(request):
if request.method == 'POST': # If the form has been submitted...
form = UploadForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
emailAddress = form.cleaned_data['emailAddress']
image = form.cleaned_data['image']
caption = form.cleaned_data['caption']
i = Image(emailAddress=emailAddress, image = image, caption = caption)
i.save()
return HttpResponseRedirect('../image/')
else:
return render_to_response('images/upload.html', {'form': form})
else:
form = UploadForm() # An unbound form
return render_to_response('images/upload.html', {'form': form})
マイテンプレートが見えます:
from django.db import models
from django.db.models import ImageField, signals
from django.dispatch import dispatcher
from django.forms import ModelForm
# Create your models here.
class Image(models.Model):
emailAddress = models.EmailField(max_length=75)
image = ImageField(upload_to='photos')
caption = models.CharField(max_length=100)
class UploadForm(ModelForm):
class Meta:
model = Image
私のviews.pyは以下のようになりますように私のmodel.pyに見えます管理アプリケーションには必要ですが、一般的なフォームが必要です。これは、電子メールアドレスまたはイメージのいずれかを要求し続ける(このエラーはイメージフィールドの上に表示されます)。なぜ私のフォームは有効ではないのでしょうか?
フォームにCSRFトークンを追加
を参照してくださいする必要があります。 –
@Cat Plus Plus、CSRFトークンを追加しましたが、エラーはまだ発生しています。なぜこれは違いをもたらしたでしょうか?私はis_validという考えはデータの正当性をチェックすることだと思った。 – Dean