rpkilby / jsonfield

A reusable Django model field for storing ad-hoc JSON data
MIT License
1.16k stars 271 forks source link

Got ValidationError(_("Enter valid JSON")) at django admin list view #209

Closed belek closed 6 years ago

belek commented 6 years ago

Django==1.8.5 Python 2.7 Getting ValidationError(_("Enter valid JSON")) when I try to open django admin list view.

I am creating dictionary, do json.dump and creating an object like this:

FareEditLog.objects.create(
            fare=self.object,
            change=json.dumps(fare),
        )

In database I have following record: "{\"category\":\"\\u0421\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\",\"promo\":false,\"fixed_price\":0.0,\"rates\":[{\"end\":10000,\"name\":\"\\u0420\\u0435\\u0439\\u0442\",\"price\":10.0,\"type_name\":\"\\u041a\\u0438\\u043b\\u043e\\u043c\\u0435\\u0442\\u0440\\u0430\\u0436\",\"start\":0,\"type\":1},{\"end\":15,\"name\":\"\\u0420\\u0435\\u0439\\u0442\",\"price\":3.0,\"type_name\":\"\\u041e\\u0436\\u0438\\u0434\\u0430\\u043d\\u0438\\u0435\",\"start\":0,\"type\":2},{\"end\":10000,\"name\":\"\\u0420\\u0435\\u0439\\u0442\",\"price\":4.0,\"type_name\":\"\\u041e\\u0436\\u0438\\u0434\\u0430\\u043d\\u0438\\u0435\",\"start\":15,\"type\":2}],\"fee_in_percent\":false,\"flaggall\":60.0,\"order_fee\":10.0,\"fixed_fare\":false,\"transfer_fare\":false,\"free_waiting\":51}"

And it is valid. Even if you do json.loads() you will get successful result.

belek commented 6 years ago

Nevermind, my bad. Got invalid records in table beside this record.