django - 将 HTML 表单转换为 Django 表单
问题描述
我用 django 创建了一个网站,我在搬到 django 之前用 html 制作了这个网站,我知道需要知道如何以 djang 形式创建这个网站,并且存储在一个模型中,非常感谢任何帮助
<form>
<div class="newEvent">
<fieldset id="ResultSheet">
<legend>Result Sheet</legend>
Event: <br>
<select name="Events" id="Events">
<option disabled selected value> --SELECT AN
OPTION
BELOW-- </option>
<option value="100 Metres">100 Metres</option>
<option value="200 Metres">200 Metres</option>
<option value="300 Metres">300 Metres</option>
<option value="400 Metres">400 Metres</option>
<option value="800 Metres">800 Metres</option>
<option value="1500 Metres">1500 Metres</option>
<option value="400 Metres">400 Metres</option>
<option value="Hurdels">Hurdels</option>
<option value="Shot Put">Shot Put</option>
<option value="Discus">Discus</option>
<option value="Javelin">Javelin</option>
<option value="Long Jump">Long Jump</option>
<option value="High Jump">High Jump</option>
<option value="Triple Jump">Triple Jump</option>
<option value="4x100 Metres Relay">4x100 Metres
relay</option>
</select>
<div class="newParticipant">
<br>
Placing: <input type="number" name="placing" min="1">
First name: <input type="text" name="fisrtName">
Last Name: <input type="text" name="lastName">
Result: <input type="number" name="result">
</div>
<input type="button" class="newPupil button" name="newPupil" value="New participant">
<input type="submit" value="Submit" class="button">
</fieldset>
</div>
</form>
<input type="button" id="addEvent" name="addEvent" value="Add Event" class="button" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<button value="Refresh Page" onClick="refreshPage()" class="button">REFRESH</button>
解决方案
正如您在评论中所说,您需要存储event
、placing
、first name
和last name
. result
相同的 django 表单如下所示:
表格.py:
表格:-
from django import forms
from django.core.validators import MinValueValidator
class MyForm(forms.Form):
CHOICES = (('Option 1', 'Option 1'),('Option 2', 'Option 2'),)
events = forms.ChoiceField(choices=CHOICES)
placing = forms.IntegerField(validators=[MinValueValidator(1)])
first_name = forms.CharField()
last_name = forms.CharField()
result = forms.IntegerField()
或者
模型形式:-
from django import forms
from .models import model_name
from django.core.validators import MinValueValidator
class MyForm(forms.ModelForm):
CHOICES = (('Option 1', 'Option 1'),('Option 2', 'Option 2'),)
events = forms.ChoiceField(choices=CHOICES)
placing = forms.IntegerField(validators=[MinValueValidator(1)])
first_name = forms.CharField()
last_name = forms.CharField()
result = forms.IntegerField()
class Meta:
model = model_name
fields = ['events', 'placing', 'first_name', 'last_name', 'result']
笔记:
如果ModelForm
您不需要指定这些字段(除非您想为您的表单修改它们),如果它们已经存在于您的模型中。
例如,如果您已经first_name
在模型中指定并且不想修改它,则可以将其从 ModelForm 中删除,并将其包含在fields
类Meta
doc中。
推荐阅读
- python - 如何使用 sc.addPyFile() 在 pyspark 中导入 matplotlib python 库?
- shopify - 在集合页面顶部打印所有产品的独特变体
- node.js - 在 Gitlab CI 运行器中为 React App 构建的 Docker 失败
- javascript - 如何在 vanilla Vue.js 中检查密码匹配?
- apollo - apollo-client - 我可以在 apollo-client 实例化后动态调整 apolloLinks 吗?
- sql - SQL 字符串中的崩溃间隙
- python - 何时在 Python 中选择 collections.Iterable 或 '__iter__' 属性?
- reactjs - 我如何在 React 中引用这个 ref?
- swift - 删除firebase中的数据后如何刷新TableViewCell?
- javascript - 如果几乎同时发送,Socket.io 是否会“组合”数据包?