Python 无法在模板中呈现django表单
在阅读了之后,我尝试构建自己的表单,但是表单无法在模板中呈现。我在stackoverflow上也遇到过类似的问题,但没有任何解决方案可以解决我的问题。Python 无法在模板中呈现django表单,python,django,django-forms,django-templates,Python,Django,Django Forms,Django Templates,在阅读了之后,我尝试构建自己的表单,但是表单无法在模板中呈现。我在stackoverflow上也遇到过类似的问题,但没有任何解决方案可以解决我的问题。 我有一个基于模型的简单表单。这是我的代码片段。 模型: class Tweet(activity.Activity, models.Model): user = models.ForeignKey('auth.User') text = models.CharField(max_length=160) created_at
我有一个基于模型的简单表单。这是我的代码片段。
模型:
class Tweet(activity.Activity, models.Model):
user = models.ForeignKey('auth.User')
text = models.CharField(max_length=160)
created_at = models.DateTimeField(auto_now_add=True)
#...
表格:
class TweetForm(ModelForm):
#text = forms.CharField(label = 'Tweet', max_length = 100)
class Meta:
model = Tweet
fields = '__all__'
观点:
def user(request, user_name):
if not request.user.is_authenticated():
return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
form = TweetForm()
user = get_object_or_404(User, username=user_name)
feeds = feed_manager.get_user_feed(user.id)
activities = feeds.get(limit=25)['results']
activities = enricher.enrich_activities(activities)
context = {
'activities': activities,
'user': user,
'login_user': request.user,
'form': form
}
return render(request, 'look/user.html', context)
html:
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Tweet" />
上下文
中的键/值对{'form':form}
没有正常呈现,这就是{{form}
无法工作的原因。但是上下文中的任何其他变量都可以正常工作。
这真的让我很困扰,我不明白为什么上下文不起作用。提前感谢您的建议。
附加说明
我试过这个:
{% if form %} form is true
{% else %} form is false
{% endif %}
在我的html模板中,结果是formisfalse
,这表明form
变量没有通过上下文传递,或者发生了我无法解释的事情。如果您对此有任何想法,我们将不胜感激。再次感谢。我已使用模板中的循环呈现了我的表单:
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.errors }}
{{ field.help_text }}
{{ field }}
<br/>
<br/>
{% endfor %}
{%for hidden in form.hidden_fields%}
{{隐藏}}
{%endfor%}
{%form.visible_fields%}
{{field.errors}}
{{field.help_text}
{{field}}
{%endfor%}
这将在我的项目中正确显示表单。我已使用模板中的循环呈现表单:
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.errors }}
{{ field.help_text }}
{{ field }}
<br/>
<br/>
{% endfor %}
{%for hidden in form.hidden_fields%}
{{隐藏}}
{%endfor%}
{%form.visible_fields%}
{{field.errors}}
{{field.help_text}
{{field}}
{%endfor%}
这将在我的项目中正确显示表单。我终于找到了出错的地方。。。而且这很愚蠢。实际上,我在另一个函数中呈现了user.html
,因此我在方法user
中所做的任何操作都不起作用。在右视图方法中实例化了一个表单
实例后,TweetForm
成功呈现。我终于发现了哪里出了问题。。。而且这很愚蠢。实际上,我在另一个函数中呈现了user.html
,因此我在方法user
中所做的任何操作都不起作用。在右视图方法中实例化表单
实例后,TweetForm
已成功呈现。如何运行runserver
?runserver
工作正常,但表单未呈现且只有一个按钮。如何运行runserver
?runserver
工作正常,但表单未呈现且只有一个按钮虽然我在上下文中添加了表单,但是html模板中没有form
变量。@Hmm。我不确定它可能是什么。我想你可能是无意中注释掉了代码中的表单字段,而不是真正的代码本身?\@cmakie21这是因为我试图创建一个不基于现有模型的表单,以查看问题是否与ModelForm
有关。事实证明不是这样。问题是,虽然我在上下文中添加了表单,但html模板中没有form
变量。@Hmm。我不确定它可能是什么。我想你可能是无意中注释掉了代码中的表单字段,而不是真正的代码本身?\@cmakie21这是因为我试图创建一个不基于现有模型的表单,以查看问题是否与ModelForm
有关。原来不是。