我还在学习Django。我一直在看各种教程,但我正在努力与django框架上的表单。 问题是我无法在base.html页面上显示电子邮件的表单字段。它基本上是一种订阅形式。我还是django的新手。这就是我到目前为止所做的。
models.py
from django.db import models
class SubscribeModel(models.Model):
email = models.CharField(max_length=100)
forms.py
from django import forms
from models import SubscribeModel
class SubscribeForm(forms.ModelForm):
class Meta:
model=SubscribeModel
views.py
def loadform(request):
form = SubscribeForm()
return render_to_response('base.html', {'form': form},context_instance=RequestContext(request))
base.html文件
<html>
...
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Subscribe"></ul>
</form>
...
</html>
urls.py
urlpatterns = patterns('',
url(r'^$', 'chsite.blog.views.index'),
url(r'^$', 'chsite.blog.views.loadform'),
url(r'^admin/', include(admin.site.urls)),
)
答案 0 :(得分:1)
一旦你编辑了这个问题,我就可以看到两个url(---)对同一个url有影响。因此Django将加载第一个。这意味着您永远不会加载loadform视图。所以尝试删除该行:
url(r'^$', 'chsite.blog.views.index'),
或编辑loadform的实际元组,例如:
url(r'^suscribe/$', 'chsite.blog.views.loadform'),
然后转到您的浏览器127.0.0.1:8000/suscribe/ url。
答案 1 :(得分:1)
您必须定义不同的网址格式,因为前两个是相同的。 URL处理在首次点击时停止,在您的情况下使用索引视图。