X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4b200d823f0ec79279da035a46d0d888693ca2fe..180cb43d814a4abe2811f29630ffffaaf9cfa9b7:/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: