コード例 #1
0
    def handle_noargs(self, **options):
        orphan_docs = Document.objects.filter(politicalbuy__isnull=True)
        self.stdout.write('Found {0} orphan docs (not attached to PoliticalBuy records)\n'.format(orphan_docs.count()))

        try:
            user = User.objects.get(username='******')
        except User.DoesNotExist:
            raise CommandError("Couldn't find user 'auto', which is required to populate moderation fields. Exiting.")

        for orphan_obj in orphan_docs:
            doc_meta = orphan_obj.dc_data
            callsign = doc_meta.get('callsign')
            if callsign is None:
                self.stderr.write('No callsign on "{0}". Skipping...\n'.format(orphan_obj.title))
                continue
            try:
                broadcaster = Broadcaster.objects.get(callsign__startswith=callsign)
            except Broadcaster.DoesNotExist:
                self.stderr.write("Can't find a Broadcaster with a callsign that matches {0}. Skipping...\n".format(broadcaster.callsign))
                continue
            except Broadcaster.MultipleObjectsReturned:
                self.stderr.write("document's callsign, {0}, matches multiple broadcasters. Skipping...\n".format(broadcaster.callsign))
                continue
            else:
                try:
                    pb_obj = PoliticalBuy(documentcloud_doc=orphan_obj)
                    pb_obj.broadcasters.add(broadcaster)
                    try:
                        pb_obj.full_clean()
                    except ValidationError, e:
                        self.stderr.write(e)
                    pb_obj.save(user)
                except Exception, e:
                    self.stderr.write(repr(e))
                    raise e
コード例 #2
0
    def handle_noargs(self, **options):
        orphan_docs = Document.objects.filter(politicalbuy__isnull=True)
        self.stdout.write(
            'Found {0} orphan docs (not attached to PoliticalBuy records)\n'.
            format(orphan_docs.count()))

        try:
            user = User.objects.get(username='******')
        except User.DoesNotExist:
            raise CommandError(
                "Couldn't find user 'auto', which is required to populate moderation fields. Exiting."
            )

        for orphan_obj in orphan_docs:
            doc_meta = orphan_obj.dc_data
            callsign = doc_meta.get('callsign')
            if callsign is None:
                self.stderr.write('No callsign on "{0}". Skipping...\n'.format(
                    orphan_obj.title))
                continue
            try:
                broadcaster = Broadcaster.objects.get(
                    callsign__startswith=callsign)
            except Broadcaster.DoesNotExist:
                self.stderr.write(
                    "Can't find a Broadcaster with a callsign that matches {0}. Skipping...\n"
                    .format(broadcaster.callsign))
                continue
            except Broadcaster.MultipleObjectsReturned:
                self.stderr.write(
                    "document's callsign, {0}, matches multiple broadcasters. Skipping...\n"
                    .format(broadcaster.callsign))
                continue
            else:
                try:
                    pb_obj = PoliticalBuy(documentcloud_doc=orphan_obj)
                    pb_obj.broadcasters.add(broadcaster)
                    try:
                        pb_obj.full_clean()
                    except ValidationError, e:
                        self.stderr.write(e)
                    pb_obj.save(user)
                except Exception, e:
                    self.stderr.write(repr(e))
                    raise e