フォームを保存する前に、フォームのインスタンスを変更しようとしています。ビュー内に次のような特定の情報を設定する必要があります。
class UploadedFile(models.Model):
file = models.FileField(storage=s3store, upload_to=custom_upload_to)
slug = models.SlugField(max_length=50, blank=True)
bucket = models.ForeignKey(S3Bucket, blank=False)
uploaded_by = models.ForeignKey(User, related_name='uploaded_by', blank=False)
company = models.ForeignKey(Company, blank=False)
-
class UploadForm(ModelForm):
class Meta:
model = UploadedFile
-
form = UploadForm(request.POST, request.FILES)
form.instance.company_id = r_user.company.id
form.instance.uploaded_by_id = r_user.id
form.instance.bucket_id = r_user.company.s3_bucket_id
if form.is_valid():
form_object = form.save()
会社/アップロード済み/バケットが空であるため、フォームが無効であることがわかりました。
エラーフォーム:
しかし、私はそれらを設定しました!それらをblank=Trueにしてから、save(commit = false)を実行し、それらを変更してから、再保存する必要がありますか?はいの場合、なぜそうですか?形を変えました…。