38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from import_export import resources, fields
|
|
from import_export.widgets import ForeignKeyWidget, ManyToManyWidget
|
|
|
|
from apps.users.models import User
|
|
from apps.blog.models import Post, Category, Tag
|
|
|
|
class CategoryResource(resources.ModelResource):
|
|
class Meta:
|
|
model = Category
|
|
fields = ('id', 'name', 'parent', 'slug', 'description', 'created_at')
|
|
|
|
class PostResource(resources.ModelResource):
|
|
author = fields.Field(
|
|
column_name='author',
|
|
attribute='author',
|
|
widget=ForeignKeyWidget(User, 'username')
|
|
)
|
|
category = fields.Field(
|
|
column_name='category',
|
|
attribute='category',
|
|
widget=ForeignKeyWidget(Category, 'name')
|
|
)
|
|
tags = fields.Field(
|
|
column_name='tags',
|
|
attribute='tags',
|
|
widget=ManyToManyWidget(Tag, field='name', separator='|')
|
|
)
|
|
writers = fields.Field(
|
|
column_name='writers',
|
|
attribute='writers',
|
|
widget=ManyToManyWidget(User, field='username', separator='|')
|
|
)
|
|
|
|
class Meta:
|
|
model = Post
|
|
fields = ('id', 'title', 'slug', 'content', 'excerpt', 'author',
|
|
'category', 'tags', 'writers', 'status', 'is_featured', 'published_at', 'created_at')
|