X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4b200d823f0ec79279da035a46d0d888693ca2fe..4137f65961ae75b62f1efcf0d48de4fd2dcea9a8:/src/catalogue/wikidata.py diff --git a/src/catalogue/wikidata.py b/src/catalogue/wikidata.py index 90f1a5cb..e5aecafe 100644 --- a/src/catalogue/wikidata.py +++ b/src/catalogue/wikidata.py @@ -71,6 +71,9 @@ class WikidataModel(models.Model): def wikidata_populate(self, save=True, force=False): Wikidata = type(self).Wikidata client = Client() + client.opener.addheaders = [( + 'User-Agent', 'Wolne Lektury Redakcja / Python-wikidata' + )] # Probably should getlist entity = client.get(self.wikidata) for attname in dir(Wikidata): @@ -159,7 +162,16 @@ class WikidataModel(models.Model): wdvalue = wdvalue.label.get(language, str(wdvalue.label)) if not skip_set: - setattr(self, attname, wdvalue) + try: + wdvalue = model_field.to_python(wdvalue) + except: + pass + else: + if isinstance(wdvalue, str): + max_length = getattr(model_field, 'max_length', None) + if max_length: + wdvalue = wdvalue[:max_length] + setattr(self, attname, wdvalue) def wikidata_link(self): if self.wikidata: