問題は、ユーザーが写真を送信すると、このエラーが発生することです。ボードを選択してもボードのドロップボックスが検証されないため、このエラーが発生する理由を理解していると思います。
IntegrityError at /picture/
pet_picture.board_id may not be NULLRequest Method: POST
Request URL:
Django Version: 1.4.3
Exception Type: IntegrityError
Exception Value: pet_picture.board_id may not be NULL
Traceback:
File "C:\o\mysite\pet\views.py" in PictureCreator
106. picture = Picture.objects.create(user=request.user)
問題はviews.pyのPictureCreator関数にあると思います
def PictureCreator(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('pet.views.LoginRequest'))
if request.method == "POST":
form = PictureForm(request.POST , request.FILES)
if form.is_valid():
picture = Picture.objects.create(user=request.user)
picture.image = form.cleaned_data['image']
picture.description = form.cleaned_data['description']
picture.board = form.cleaned_data['board']
picture.save()
return render(request,'picture.html',{'form':PictureForm()})
私はこの特定のステートメントで問題があると思います それは私のボードのドロップボックスを有効にしません。どうすれば有効にできますか? picture.board = form.cleaned_data['ボード']
私のforms.pyの私の部分
class PictureForm(forms.ModelForm):
board = forms.ModelChoiceField(queryset=Board.objects.all())
class Meta:
model = Picture
fields = ('image','description','board',)
私のモデル.py
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
class Person(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
def __unicode__(self):
return self.name
class Picture(models.Model):
user = models.ForeignKey(User)
board = models.ForeignKey(Board)
image = models.FileField(upload_to="images/",blank=True,null=True)
description = models.TextField()
def __unicode__(self):
return self.description
どうすればこれを修正できますか? 私を助けてくれてありがとう:D