表单字段未显示在模板中。

huangapple go评论143阅读模式
英文:

Form field not showing in tempate

问题

在定义表单字段后,当我尝试在Django模板中使用{{form.Date_Joined}}访问时

不起作用

  1. class UserAdd(forms.ModelForm):
  2. class Meta:
  3. model=CompanyUsers
  4. fields= '__all__'
  5. exclude=['usrPsswd','usrId','usrCmpnyId','lstLogin','is_active','usrDOJ']
  6. widgets={
  7. 'Date_Joined':forms.DateInput(attrs={'type':'date'}),
  8. }

我声明的小部件不显示

  1. <div class="order">
  2. <!--<div class="head" >-->
  3. <h4> ADD COMPANY</h4>
  4. <!--</div> -->
  5. <table id="table-datas">
  6. <form method="POST" action="">
  7. {% csrf_token %}
  8. <tbody>
  9. <tr><td>Username</td><br><td>{{ form.usrNme}}</td></tr>
  10. <tr><td>First Name </td><br><td>{{ form.usrFNme}}</td></tr>
  11. <tr><td>Last Name </td><br><td>{{ form.usrLNme}}</td></tr>
  12. <tr><td>Date of join</td><br><td>{{form.Date_Joined}}</td></tr>
  13. <tr><td>Department</td><br><td>{{ form.usrDpt}}</td></tr>
  14. <tr><td>Email</td><br><td>{{ form.usrMail}}</td></tr>
  15. <tr><td><button type="submit">Register</button></td></tr>
  16. </form>```
  17. 所以"Date Joined"字段什么都不显示。
  18. <details>
  19. <summary>英文:</summary>
  20. after defining form field when I try to access in django template using {{form.Date_Joined}}
  21. not working

class UserAdd(forms.ModelForm):

  1. class Meta:
  2. model=CompanyUsers
  3. fields= &#39;__all__&#39;
  4. exclude=[&#39;usrPsswd&#39;,&#39;usrId&#39;,&#39;usrCmpnyId&#39;,&#39;lstLogin&#39;,&#39;is_active&#39;,&#39;usrDOJ&#39;]
  5. widgets={
  6. &#39;Date_Joined&#39;:forms.DateInput(attrs={&#39;type&#39;:&#39;date&#39;}),
  7. }
  1. The widget i&#39;ve declare not showing
  2. ```&lt;div class=&quot;table-data&quot;&gt;
  3. &lt;div class=&quot;order&quot;&gt;
  4. &lt;!-- &lt;div class=&quot;head&quot; &gt; --&gt;
  5. &lt;h4&gt; ADD COMPANY&lt;/h4&gt;
  6. &lt;!-- &lt;/div&gt; --&gt;
  7. &lt;table id=&quot;table-datas&quot;&gt;
  8. &lt;form method=&quot;POST&quot; action=&quot;&quot;&gt;
  9. {% csrf_token %}
  10. &lt;tbody&gt;
  11. &lt;tr&gt;&lt;td&gt;Username&lt;/td&gt;&lt;br&gt;&lt;td&gt;{{ form.usrNme}}&lt;/td&gt;&lt;/tr&gt;
  12. &lt;tr&gt;&lt;td&gt;First Name &lt;/td&gt;&lt;br&gt;&lt;td&gt;{{ form.usrFNme}}&lt;/td&gt;&lt;/tr&gt;
  13. &lt;tr&gt;&lt;td&gt;Last Name &lt;/td&gt;&lt;br&gt;&lt;td&gt;{{ form.usrLNme}}&lt;/td&gt;&lt;/tr&gt;
  14. &lt;tr&gt;&lt;td&gt;Date of join&lt;/td&gt;&lt;br&gt;&lt;td&gt;{{form.Date_Joined}}&lt;/td&gt;&lt;/tr&gt;
  15. &lt;tr&gt;&lt;td&gt;Department&lt;/td&gt;&lt;br&gt;&lt;td&gt;{{ form.usrDpt}}&lt;/td&gt;&lt;/tr&gt;
  16. &lt;tr&gt;&lt;td&gt;Email&lt;/td&gt;&lt;br&gt;&lt;td&gt;{{ form.usrMail}}&lt;/td&gt;&lt;/tr&gt;
  17. &lt;tr&gt;&lt;td&gt;&lt;button type=&quot;submit&quot;&gt;Register&lt;/button&gt;&lt;/td&gt;&lt;/tr&gt;
  18. &lt;/form&gt;```
  19. so the Date Joined field shows nothing
  20. </details>
  21. # 答案1
  22. **得分**: 1
  23. "attrs""type"未被考虑,这源自小部件的"input_type",因此您可以创建自定义小部件:
  24. ```python
  25. class MyDateInput(forms.DateInput):
  26. input_type = 'date'

然后将其用作小部件插入:

  1. class UserAdd(forms.ModelForm):
  2. class Meta:
  3. model = CompanyUsers
  4. fields = '__all__'
  5. exclude = [
  6. 'usrPsswd',
  7. 'usrId',
  8. 'usrCmpnyId',
  9. 'lstLogin',
  10. 'is_active',
  11. 'usrDOJ',
  12. ]
  13. widgets = {
  14. 'Date_Joined': MyDateInput,
  15. }
英文:

The type of the attrs is not taken into account, this originates from the input_type of the widget, you thus create a custom widget:

<pre><code>class MyDateInput(forms.DateInput):
<b>input_type = 'date'</b></code></pre>

then we plug this in as widget:

<pre><code>class UserAdd(forms.ModelForm):
class Meta:
model = CompanyUsers
fields = 'all'
exclude = [
'usrPsswd',
'usrId',
'usrCmpnyId',
'lstLogin',
'is_active',
'usrDOJ',
]
widgets = {
'Date_Joined': <b>MyDateInput</b>,
}</code></pre>

答案2

得分: 1

我认为你在表单的**Date_Joined**字段的拼写上犯了一个错误,因为Python是区分大小写的。

将代码更改为:

  1. widgets={
  2. 'date_Joined':forms.DateInput(attrs={'type':'date'}),
  3. }

而不是:

  1. widgets={
  2. 'Date_Joined':forms.DateInput(attrs={'type':'date'}),
  3. }
英文:

I think you make a mistake with the typo field of the form Date_Joined because python is case sensitive.

Type

  1. widgets={
  2. &#39;date_Joined&#39;:forms.DateInput(attrs={&#39;type&#39;:&#39;date&#39;}),
  3. }

Instead of

  1. widgets={
  2. &#39;Date_Joined&#39;:forms.DateInput(attrs={&#39;type&#39;:&#39;date&#39;}),
  3. }

huangapple
  • 本文由 发表于 2023年7月13日 18:36:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/76678414.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定