У меня настроена следующая модель:
class ReceiverActions(models.Model):
...
date_paid = models.DateTimeField(default=datetime.now)
и я пытаюсь схватить только дату. Когда я запускаю это в своей оболочке:
ReceiverActions.objects.get(identifier = "JLWY25B4").date_paid.date
Получаю подходящую дату: 2018-08-12
но когда я пытаюсь вызвать это в своих представлениях:
ra = list(ReceiverActions.objects.filter(
seller_inventory=ss).values().order_by('id'))
rec_id = [
x
for x in ra
if x['seller_inventory_id'] == inventory['id']][0]
info['paid_date'] = str(rec_id['paid_date.date()'])
Я становлюсь неопределенным.
Я также пробовал ['paid_date__date']
и ['paid_date.date']
Кто-нибудь знает, почему это не работает?
Обновлено: когда я вызываю другие значения, такие как red_id['identifier']
, он отлично работает.
rec_id - это список словарей.
@DanielRoseman: нет, это один словарь, обратите внимание на [0]
в конце. Но в любом случае это определенно не путь.
Что ж, в идеале ищу решение вызова свидания. Хотя метод создания словаря может вызывать сомнения. Когда я называю другие значения, он работает отлично.
У вас просто небольшое заблуждение: dict rec_id
содержит все поля как ключи. Вам нужно сначала получить значение поля (которое также является значением dict), а затем вызвать методы для него.
А также, похоже, вы неправильно написали имя поля: оно должно быть date_paid
, а не paid_date
.
Так что измените эту строку:
... = str(rec_id['paid_date.date()'])
к этому
... = str(rec_id['date_paid'].date())
Какая здесь ценность
ss
?