0
我面臨一個小問題,我看不透。Django從命令行prepopulated_fields
我有一個解析csv文件的命令行:
class Command(BaseCommand):
help = 'Import list of press article from .csv'
def handle(self, *args, **options):
activate('en') #without it the language will be wrong
ArticleFile = csv.reader(open(args[0]), delimiter=',')
global_article = ""
current_site = Site.objects.get_current()
is_new_source = []
for row in ArticleFile:
isIn = False
_country = ""
if row[0] != "Order":
if row[7] == "TRUE":
global_article = True
elif row[7] == "FALSE":
_country = Country.objects.get(name_ascii=row[6])
global_article = False
if row[5].endswith(' '):
row[5] = row[5][:-1]
for is_exist in is_new_source:
if is_exist.split(' ') == row[5].split(' '):
isIn = True
new_article = Article(
article_url=row[9],
global_regions=global_article,
title = row[8],
date_realization=datetime.strptime(row[4] + '-' + row[3] + '-' + row[2], '%Y-%m-%d').date(),
)
new_article.save()
if isIn == False:
is_new_source.append(row[5])
_source = ArticleSource.objects.create(name=row[5])
else:
_source = ArticleSource.objects.get(name=row[5])
new_article.sources.add(_source)
new_article.sites.add(current_site)
if _country != "":
new_article.article_country.add(_country)
,我有我的管理這種神奇的線(對源爲例):
class ArticleSourceAdmin(VersionedPlaceholderAdminMixin,
FrontendEditableAdminMixin,
SortableAdminMixin):
list_display = ['__str__']
prepopulated_fields = {'slug': ('name',), }
admin.site.register(ArticleSource, ArticleSourceAdmin)
如果我有一個文章,我可以看到,slu is在輸入時自動填充。 但用命令行來解析csv文件,slug將保持爲空。
有什麼想法?
非常感謝
'prepopulated_fields'使用JavaScript來自動填充輸入。在命令行上不起作用。爲了在使用命令行時設置'slug',你需要重寫模型的'save'方法。 – xyres
哦,好的,謝謝xyres! –
我已經發布了一個例子的答案。看看它是否有幫助。 – xyres