【发布时间】:2016-05-16 22:15:29
【问题描述】:
我正在尝试将帖子标题转换为 CamelCase 以创建 twitter 主题标签,我正在使用 strip 但它返回一个对象而不是我不知道这是否正确?
# views.py
def post_create(request):
if not request.user.is_authenticated():
raise Http404
form_class = PostCreateForm
if request.method == 'POST':
form = form_class(request.POST, request.FILES)
if form.is_valid():
instance = form.save(commit=False)
instance.creator = request.user
instance.slug = slugify(instance.title)
instance.hashtag = instance.title.strip()
instance.save()
slug = slugify(instance.title)
return redirect(instance.get_absolute_url())
else:
form = form_class()
context = {
'form': form,
}
return render(request, "posts/post_create.html", context)
在模板var中返回<built-in method strip of unicode object at 0x031ECB48>,我要找的结果是这样MyPostTitle进入模板
# Template view
<h3>#{{instance.hashtag|title}}</h3>
models.py
class Post(models.Model):
creator = models.ForeignKey(ProfileUser)
title = models.CharField(max_length=80)
hashtag = models.CharField(max_length=80)
slug = models.SlugField(unique=True)
def __unicode__(self):
return self.title
def get_absolute_url(self):
return reverse("posts:detail", kwargs={"slug": self.slug})
【问题讨论】:
-
你能展示你的 Post 模型定义吗?谢谢。
-
我添加了 Post 模型
-
好吧,可能是我错过了什么或没有足够的咖啡。尝试删除 pyc 文件并重新启动服务器 - 看起来它确实以
instance.title.strip而不是instance.title.strip()运行。 -
酷,我删除了 pyc 文件并且它可以工作,但现在主题标签仍然有空格
My Post Title而不是MyPostTitle任何解决此问题的方法 -
Strip 返回一个列表。添加了一个答案,该答案还删除了标点符号并将单词大写。
标签: python django python-2.7 django-templates django-views