У меня проблема, у меня есть две таблицы
class Car(models.Model):
brand = models.ForeignKey(Brand, on_delete=models.CASCADE)
year = models.IntegerField(null=False, default=None)
begin = models.DateTimeField(default=None, blank=True)
class Brand(models.Model):
name = models.CharField(max_length=64, default=None)
Затем я попытался сериализовать, используя это:
car_query = Car.objects.filter(year=1984)
car_json = serializers.serialize('json', car)
car = json.loads(car_json)
Это работает, но у меня есть только идентификатор записив таблице бренд.То, что я хотел бы иметь, это имя Бренда внутри переменной car.
Я подумал попробовать это:
car_query = Car.objects.filter(year=1984).values('year', 'begin', 'brand__name')
В этом случае у меня есть набор значений Query, а затем, когда я пытаюсьэто:
car_json = serializers.serialize('json', car_query)
car = json.loads(car_json)
Я получил это: {AttributeError}'dict' object has no attribute '_meta'
, потому что car_query - это не набор запросов, а набор значений, который является проблемой.
Поэтому я пробую это car_json = json.dumps(car_query)
, но у меня есть некоторое время и датаэто не работает, поэтому я решил попробовать это:
json.dumps(car_query, sort_keys=True, indent=1, cls=DjangoJSONEncoder)
, но это не работает.Это странно, потому что, когда я использую serializers.serialize
, дата и время находятся в хорошем формате, но когда я использую json.loads
, у меня есть datetime
.
Я уточняю, что моя цель - просто иметь в конце переменнуюcar
, который содержит все поля таблицы Car
и поле name
таблицы Brand
.