我想要做的是当用户想要编辑时,他/她应该能够以文本字段格式看到PlotID而不是下拉格式,因为现在Plot_ID字段显示为下拉列表而不是文本字段。
我想要做的是当用户想要编辑时,他/她应该能够以文本字段格式看到PlotID而不是下拉格式,因为现在Plot_ID字段显示为下拉列表而不是文本字段。
我的model.py:
class Farm(models.Model):
farmID = models.CharField('farmID',primary_key=True, max_length=20)
fieldsize = models.FloatField('Field Size (hactre)')
class Plot(models.Model):
farm = models.ForeignKey(Farm,verbose_name='FarmID')
plotID = models.CharField('PlotID',max_length=50)
class PlotManagement(models.Model):
farm = models.ForeignKey(Farm,verbose_name='FieldID')
plotID = models.ForeignKey(Plot,verbose_name='PlotID')
我的form.py
class PlotManagementForm(forms.ModelForm):
class Meta:
model=PlotManagement
exclude=('enteredpersonel',)
def __init__(self, *args, **kwargs):
super(PlotManagementForm, self).__init__(*args, **kwargs)
self.fields['farm'].widget.attrs['class'] = 'form-control'
self.fields['plotID'].widget.attrs['class'] = 'form-control'
我的template.html: {{plotmanagementform.farm.errors}} 农民: {{plotmanagementform.farm}}
<div class="form-group">
{{ plotmanagementform.plotID.errors }}
<label for="plotID" class="col-md-4 control-label">Plot ID:</label>
<div class="col-md-4 selectContainer">
{{ plotmanagementform.plotID }}
</div>
</div>
答案 0 :(得分:0)
您可以将PlotId字段的窗口小部件更改为TextInput,如下所示:
self.fields['plotID'].widget = TextInput()
您必须从TextInput
导入django.forms.widgets
。或许NumberInput()
更合适。
但正如评论中所提到的,这样做并不是一个好主意。让主要或外部密钥ID可编辑并不是一个好主意,因为如果您的数据库和关系很容易失去同步,那么你犯了一个错误。