我想添加一个拇指向上和拇指向下计数器作为注释字段。 我在models.py中将一个名为“MyComment”的类添加了两个IntegerField。 我也使用这样的forms.py:
from django import forms
from django.contrib.comments.forms import CommentForm
from blog.models import MyComment
class MyCommentForm(CommentForm):
thumbs_up = forms.IntegerField()
thumbs_down = forms.IntegerField()
def get_comment_model(self):
return MyComment
def get_comment_create_data(self):
data = super(MyCommentForm, self).get_comment_create_data()
data['thumbs_up'] = self.cleaned_data['thumbs_up']
data['thumbs_down'] = self.cleaned_data['thumbs_down']
return data
之后,当我提交评论时,它说:thumb_up和thumbs_down是必需的。 如何将它们设为可选,就像默认字段“用户的URL”一样? 任何帮助将不胜感激。
好的,这是我的MyComment模型:
from django.contrib.comments.models import Comment
class MyComment(Comment):
thumbs_up = models.IntegerField(default=0)
thumbs_down = models.IntegerField(default=0)
答案 0 :(得分:1)
你应该在模型中设置字段可选,如下所示:
class MyComment(Comment):
thumbs_up = models.IntegerField(default=0)
thumbs_down = models.IntegerField(default=0)
查看Field options了解详情。 并改变你的形式:
class MyCommentForm(CommentForm):
thumbs_up = forms.IntegerField(required=False)
thumbs_down = forms.IntegerField(required=False)
并像这样更改get_comment_create_data
:
def get_comment_create_data(self):
data = super(MyCommentForm, self).get_comment_create_data()
data['thumbs_up'] = self.cleaned_data.get('thumbs_up', 0)
data['thumbs_down'] = self.cleaned_data.get('thumbs_down', 0)
return data
答案 1 :(得分:0)
您可以通过设置" required":
告诉字段是可选的class MyCommentForm(CommentForm):
thumbs_up = forms.IntegerField(required=False)
thumbs_down = forms.IntegerField(required=False)
答案 2 :(得分:0)
修改你的模型......这是工作。
class MyComment(Comment):
thumbs_up = models.IntegerField(default=0, blank=True)
thumbs_down = models.IntegerField(default=0, blank=True)
blank属性允许您在管理面板中设置为null,而null属性允许您在数据库中设置null(null = True)。我认为在你的情况下你只需要设置blank = True,因为你为模型中的字段设置了默认值。