我正在使用Django 1.8创建一个应用程序,而我正在使用django_comments
应用程序来处理评论系统。我只希望经过身份验证的用户能够撰写新评论。所以我在forms.py中排除了name
,email
和url
字段,因为我希望它们被隐藏并从登录用户自动检索这些信息:
class CommentDetailsForm(CommentSecurityForm):
exclude = ('name', 'email', 'url')
comment = forms.CharField(...)
但是CommentDetailsForm类中有一个函数可以将这些信息保存在字典中,以便在管理区域中显示它们:
def get_comment_create_data(self):
return dict(
content_type=ContentType.objects.get_for_model(self.target_object),
object_pk=force_text(self.target_object._get_pk_val()),
user_name=self.cleaned_data["name"],
user_email=self.cleaned_data["email"],
user_url=self.cleaned_data["url"],
comment=self.cleaned_data["comment"],
submit_date=timezone.now(),
site_id=settings.SITE_ID,
is_public=True,
is_removed=False,
)
我的问题是:当登录用户发布新评论时,如何自动在此功能中填写user_name
,user_email
和user_url
。
我想一个解决方案可能会在模板中加上<input type="hidden" name="user_name" value="{{ request.user.username }}" />
,但我不知道该怎么做。