问题遇到的现象和发生背景
crispy form 在template里不显示
用代码块功能插入代码,请勿粘贴截图
Model.py
class Event(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=70, null=True)
body = models.TextField(null=True)
created_time = models.DateTimeField(auto_now_add=True, null=True)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, null=True)
abstract = models.CharField(
max_length=54, blank=True, null=True,
help_text="get the first 54 text",
)
views = models.PositiveIntegerField(default=0, null=True)
likes = models.PositiveIntegerField(default=0, null=True)
topped = models.BooleanField(default=False, null=True)
def __str__(self):
return self.title
class Meta:
ordering = ['-created_time']
forms.py
class Meta:
model = Event
fields = [
'title',
'body',
'status',
'abstract',
'topped',
]
views.py
def addeventform(self, request, *args, **kwargs):
"""A from to add new events"""
# allow template to pass in an empty form
event_form = EventForm()
# then save the form if method is post and form is valid
if request.method == 'POST':
event_form = EventForm(request.POST)
if event_form.is_valid():
event_form.save()
return redirect('addevent')
context = {
'event_form': event_form,
}
return render(request, 'comment/addevent.html', context)
template
<form method="POST" action="/addevent/" class="form mb-2" enctype="multipart/form-data">
{% csrf_token %}
{{ event_form|crispy }}
<p>testing</p>
</form>
运行结果及报错内容
无报错,就是无法显示form
我的解答思路和尝试过的方法
def addeventformview(request):
# dictionary for initial data with
# field names as keys
context = {}
# add the dictionary during initialization
event_form = EventForm(request.POST or None)
if event_form.is_valid():
event_form.save()
context['event_form'] = event_form
return render(request, "comment/addevent.html", context)
我想要达到的结果
谁能找到form不显示的解决办法?