私はdjangoでウェブサイトを作ろうとしていて、選択リストを作成すると2つが現れます。Djangoは2つで、<select>を1つではなく、Bootstrap(フォームアップロード)を使用しようとしています
HTML:
<form action="/upload/" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<select class="form-control">
{% for course in form.courseChoices %}
<option value="{{course}}">{{course}}</option>
{% endfor %}
</select>
<!--div class="col-lg-6 col-sm-6 col-12" id="upload_form" -->
<label class="btn btn-block btn-primary">
{{ form.document }} <input type="file" style="display: none; width: 100%;" >
</label>
</div> </form>
これはhere
私のフォームは、カップルのフィールドを持つ単純なのModelFormであるように見えるされているものです。 forms.py class FileForm(forms.ModelForm): class Meta: model = FileUploads fields = ('semesterChoices', 'document', 'courseChoices',)
ここでは私のモデルは
class FileUploads(models.Model):
semestersList = ['Spring 2017',
'Fall 2016',
'Spring 2016',
'Fall 2015',
'Spring 2015',
'Fall 2014',
'Spring 2014',
'Fall 2013']
with open('polls/courses.txt', 'r') as f:
coursesList = [line.strip() for line in f]
semesters = [(option, option) for option in semestersList]
courses = [(course, course) for course in coursesList]
semesterChoices = models.CharField(max_length=20, choices=semesters, default="Spring 2017")
courseChoices = models.CharField(max_length=20, choices=courses, default="ACCT Accounting")
document = models.FileField(upload_to='documents/')
uploaded_at = models.DateTimeField(auto_now_add=True)
のように見えるものである私は、ブートストラップを選択したいが、それはどのような値がそれに渡されるようだと、本当にそれが取る、重要ではありません。 2番目のselect文を入力として使用します。
ありがとうございます!これは私のために働いた!私はDjangoのノブであり、これはDjangoがフォームフィールドをアンパックしていて、それを私が望むやり方にすることを理解してくれたので、手動でフィールドをレンダリングする必要がありました。 – NewbAndroider