前提・実現したいこと
こんにちは,はじめまして.
現在,djangoを使ってフォームの内容や画像を保存するシステムを作成しています.
システムの要件は,
⑴氏名,ユーザの情報,画像を保存ボタンにより保存することができる.
⑵保存する画像,情報の数を可変にする(0〜ユーザの設定により未定義数)
⑴についてはなんとか作成できたのですが,⑵について,そもそもそれが可能であるのかがわかりません.
こちらで最初から登録できるデータの数を設定し,その数のモデルフォームを作るしかないのでしょうか?
これが可能であるのか,また,可能であれば方法をご教授願えませんでしょうか.
現在のシステム(氏名と画像部分)
一応,現在のシステムの氏名・画像部分を記述します.
抜粋箇所が間違っていれば申し訳ありません,
Python
1# viws.py 2from .forms import PersonalForm 3from .forms import PhotoForm 4from .models import Person 5 6def forms(request): 7 date = GetDate.output_date() 8 d = { 9 'pform': PersonalForm(), 10 'photoform': PhotoForm(), 11 } 12 13 if (request.method == 'POST'): 14 personalform = PersonalForm(request.POST) 15 photoform = PhotoForm(request.POST,request.FILES) 16 17 if not personalform.is_valid(): 18 return HttpResponse(personalform.errors) 19 if not photoform.is_valid(): 20 return HttpResponse(photoform.errors) 21 22 person = Person() 23 person.name = personalform.cleaned_data['name'] 24 person.image = photoform.cleaned_data['image'] 25 person.save() 26 return redirect(to='myappli:forms') 27 28 return render(request, 'index.html', d) 29
HTML
1# index.html 2<!DOCTYPE html> 3<html> 4<head lang="ja"> 5 <meta charset="UTF-8"> 6 <title></title> 7</head> 8<body> 9 10 <form action="{% url 'myappli:forms' %}" method="POST" enctype="multipart/form-data"> 11 {% csrf_token %} 12 <br> 13 <table>{{pform.as_table}}</table> 14 15 <input id ="id_image" type="file" name="image" onchange="OnFileSelect( this );" accept="image/*" multiple="multiple" /> 16 <ul id="ID001" ></ul> 17 {% csrf_token %} 18 {{ form }} 19 20 <input type="submit" name="end" value="送信"> 21</form> 22</body> 23</html> 24
python
1# models.py 2class Person(models.Model): 3 name = models.CharField(max_length=100) 4 image = models.ImageField(upload_to="image/")
python
1# forms.py 2class PersonalForm(forms.Form): 3 name = forms.CharField( 4 max_length=100, 5 required=False, 6 label='名前', 7 ) 8class PhotoForm(forms.Form): 9 image = forms.ImageField(required=False)
長くなっていまい申し訳ありません,よろしくおねがいします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/08 17:15