You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DjangoBlog/blog/forms.py

59 lines
2.2 KiB

from django import forms
from .models import Post, Category, PrimaryTag, SecondaryTag
from comments.models import Comment # 从comments应用导入
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['content']
widgets = {
'content': forms.Textarea(attrs={
'rows': 4,
'placeholder': '请输入您的评论...',
'class': 'comment-textarea'
})
}
labels = {
'content': ''
}
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'content', 'excerpt', 'category', 'primary_tags', 'secondary_tags', 'featured_image']
widgets = {
'title': forms.TextInput(attrs={
'class': 'form-control',
'placeholder': '请输入文章标题'
}),
'content': forms.Textarea(attrs={
'class': 'form-control',
'rows': 15,
'placeholder': '请输入文章内容...'
}),
'excerpt': forms.Textarea(attrs={
'class': 'form-control',
'rows': 3,
'placeholder': '请输入文章摘要(可选)'
}),
'category': forms.Select(attrs={'class': 'form-control'}),
'primary_tags': forms.SelectMultiple(attrs={'class': 'form-control'}),
'secondary_tags': forms.SelectMultiple(attrs={'class': 'form-control'}),
'featured_image': forms.FileInput(attrs={'class': 'form-control'})
}
labels = {
'title': '文章标题',
'content': '文章内容',
'excerpt': '文章摘要',
'category': '分类',
'primary_tags': '一级标签',
'secondary_tags': '二级标签',
'featured_image': '特色图片'
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# 限制分类选择,只显示已存在的分类
self.fields['category'].queryset = Category.objects.all()
self.fields['primary_tags'].queryset = PrimaryTag.objects.all()
self.fields['secondary_tags'].queryset = SecondaryTag.objects.all()