gpt4 book ai didi

python - 初学者 : python namespace collision?

转载 作者:行者123 更新时间:2023-11-30 23:45:25 28 4
gpt4 key购买 nike

免责声明:我是 python 新手,但有 drupal 编程经验

我正在阅读《Django 权威指南》(http://www.djangobook.com/en/1.0/chapter07/)。发出后

python manage.py startapp books

python 创建了 books 包,里面有views.py。在本教程的后面,我们在该views.py 文件中输入以下内容:

# Create your forms here.
from django import forms
from django.forms import form_for_model
from models import Publisher

PublisherForm = forms.form_for_model(Publisher)

TOPIC_CHOICES = (
('general', 'General enquiry'),
('bug', 'Bug report'),
('suggestion', 'Suggestion'),
)

class ContactForm(forms.Form):
topic = forms.ChoiceField(choices=TOPIC_CHOICES)
message = forms.CharField(widget=forms.Textarea())
sender = forms.EmailField(required=False)

def clean_message(self):
message = self.cleaned_data.get('message', '')
num_words = len(message.split())
if num_words < 4:
raise forms.ValidationError("Not enough words!")
return

除非我输入错误或误解了某些内容(都可能),否则我们现在(看起来)在表单(books/forms.py)和 django 表单之间发生了冲突。那么,Python 在上面的

中指的是哪一个?
message = forms.CharField(widget=forms.Textarea())

最佳答案

此声明:

from django.forms import form_for_model

实际上只是将名称 form_for_model 拉入模块全局命名空间,已经存在的名称 forms 不受影响。即使这样:

import django.forms

不会有问题,因为它只使名称以其完全限定的形式可用,django.forms(这是unambigios,不会与forms冲突) )。

关于python - 初学者 : python namespace collision?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9505420/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com