So versuche ich, eine Website mit Django zu machen und ich renne in ein Problem, wo, wenn ich eine Auswahlliste erstellen zwei auftaucht.Django macht zwei <select> statt einer, versuchen, Bootstrap (Formular-Upload)
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>
Dies ist, was ist aussieht here
Meine Form nur eine einfache Modelform mit ein paar Feldern ist. forms.py class FileForm(forms.ModelForm): class Meta: model = FileUploads fields = ('semesterChoices', 'document', 'courseChoices',)
Hier ist, was mein Modell
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)
Ich möchte nur die Bootstrap-select wie
aussieht, aber es scheint, dass alles, was Wert übergeben wird, in es nicht wirklich wichtig ist, ist es die Takes zweite Select-Anweisung als Eingabe.
Danke! Das hat für mich geklappt! Ich bin ein Neuling in Django und dies half mir zu verstehen, dass Django die Formularfelder auspackte und um es so zu machen, wie ich es wollte, musste ich die Felder manuell rendern. – NewbAndroider