[英]Understanding Django (from source code): attributes of field via models.CharField and forms.CharField
我想了解django.db.models
和django.forms
如何在field
上一起工作。
考虑以下示例:
# models.py
from django.db import models
class Person(models.Model)
Telefon1 = models.CharField('Telefon', max_length=30, blank=True, null=True)
通过generic.edit.FormView
在views
中正确显示带有默认值“ Telefon”的HTML表单字段。 为了关闭自动完成功能,我添加了以下内容:
# forms.py
from django import forms
class ContactForm(forms.ModelsForm):
Telefon1 = forms.CharField(widget=forms.TextInput(attrs={'autocomplete':'off'}))
然后使用automplete:off
正确渲染该字段。 但是字段的名称回退到models
名称: Telefon1
所以问题1 :如何确保通过models
定义的默认名称,还是必须使用forms.CharField(widget=...
来重新定义名称?
问题2 :如何找到阅读源代码的答案? 我从阅读site-packages\\django\\forms\\widget.py
,它不包含答案或我听不懂。
我想通过源代码学习和理解Django,因为该教程和文档并不总是对我有用(特别是在这种情况下)。
谈论django.db.models.Field
和django.forms.Field
正是两个不同的机器。 但是在现实生活中,我们仍然需要可以映射模型的表格。 为此,django通过传递模型名称为我们提供了django模型形式的概念。
默认情况下,django modelforms显示的名称与django model相同,但是如果需要覆盖名称,可以通过在django modelforms中覆盖__init()
来实现,以进一步阐明您的理解。
django的代码库已经开发,并且仍在不断优化中。 学习的观点令人钦佩,但陷入复杂性只是浪费效率,并且超出了被称为快速应用程序开发技术的目的。
官方文档中提供的所有内容都足够自我和深度,可以帮助您获得深刻的理解。 学习框架的唯一最佳方法是学习其错误消息,然后您将自动成为该框架的复杂者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.