после прочтения документа по форме django я попытался создать свою собственную форму, но форма просто не будет отображаться в шаблоне. Я также задавал подобные вопросы в stackoverflow, но никакие решения не могут решить мою проблему.
У меня есть эта простая форма, основанная на модели. Вот фрагмент моего кода.
Модель:
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" />
Actually, I could render the form in the python shell so there`s nothing wrong with the form. However, I found out that the problem lies here:
form = TweetForm()
#...
context = {
'activities': activities,
'user': user,
'login_user': request.user,
'form': form #see although the form is passed to the context,
} #I can`t access variable form in the html
return render(request, 'look/user.html', context)
Пара ключ/значение {'form':form}
в context
не отображается нормально, поэтому {{ form }}
не работает. Но любые другие переменные в context
работают нормально.
Меня это очень беспокоит, и я не могу понять, почему контекст не работает. Заранее спасибо за любые идеи.
P.S.
Я попробовал это:
{% if form %} form is true
{% else %} form is false
{% endif %}
в моем html-шаблоне, и результатом будет form is false
, что указывает на то, что переменная form
не передается через контекст или произошло что-то, что я не могу объяснить. Любые мысли по этому поводу будут оценены. Спасибо еще раз.
form
недоступна в шаблоне html. 01.08.2016ModelForm
. Оказалось, что нет. 01.08.2016