Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django从命令行预填充的_字段_Python_Django - Fatal编程技术网

Python Django从命令行预填充的_字段

Python Django从命令行预填充的_字段,python,django,Python,Django,我面临一个小问题,我看不透 我有一个解析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]), del

我面临一个小问题,我看不透

我有一个解析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)
我在我的管理员中有这样一条神奇的线(以源代码为例):

如果我手头有一篇文章,我可以看到在打字时,slug会自动填充。 但是使用命令行解析csv文件时,slug将保持为空

有什么想法吗


非常感谢

为了自动设置
slug
,您需要覆盖模型的
保存
方法

由于您尚未发布模型,我将尝试用一个示例来回答您的问题:

from django.utils.text import slugify

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        super(MyModel, self).save(*args, **kwargs)

为了自动设置
slug
,您需要覆盖模型的
save
方法

由于您尚未发布模型,我将尝试用一个示例来回答您的问题:

from django.utils.text import slugify

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        super(MyModel, self).save(*args, **kwargs)

预填充的_字段
使用JavaScript自动填充输入。无法在命令行上工作。为了在使用命令行时设置
slug
,您需要覆盖模型的
save
方法。哦,好的,谢谢您!我已经发布了一个带有示例的答案。查看是否有帮助。
预填充的_字段
使用JavaScript自动填充输入。无法在命令行上工作。为了在使用命令行时设置
slug
,您需要覆盖模型的
save
方法。哦,好的,谢谢您!我已经发布了一个带有示例的答案。看看是否有帮助。P e r f e c t非常感谢您或节省时间(xyres;)P e r f e c t非常感谢您或为您节省的时间xyres;)