-
Здравствуйте!
Возможно ли обновить поле связанного объекта через конструкцию F? У меня не получается:
Или я не так составил запроc?In [8]: Post.objects.filter(pk=172).update(event__posts_count = F('event.posts_count') -1)
---------------------------------------------------------------------------
<class 'django.db.models.fields.FieldDoesNotExist'>Traceback (most recent call last)
/home/greg/www/liveblogging/liveblog/<ipython console> in <module>()
/usr/local/lib/python2.5/site-packages/django/db/models/query.py in update(self, **kwargs)
444 "Cannot update a query once a slice has been taken."
445 query = self.query.clone(sql.UpdateQuery)
--> 446 query.add_update_values(kwargs)
447 if not transaction.is_managed(using=self.db):
448 transaction.enter_transaction_management(using=self.db)
/usr/local/lib/python2.5/site-packages/django/db/models/sql/subqueries.py in add_update_values(self, values)
131 values_seq = []
132 for name, val in values.iteritems():
--> 133 field, model, direct, m2m = self.model._meta.get_field_by_name(name)
134 if not direct or m2m:
135 raise FieldError('Cannot update model field %r (only non-relations and foreign keys permitted).' % field)
/usr/local/lib/python2.5/site-packages/django/db/models/options.py in get_field_by_name(self, name)
297 except KeyError:
298 raise FieldDoesNotExist('%s has no field named %r'
--> 299 % (self.object_name, name))
300
301 def get_all_field_names(self):
<class 'django.db.models.fields.FieldDoesNotExist'>: Post has no field named 'event__posts_count' -
В данном случае можно просто вызвать update для event'ов:
Event.objects.filter(post=...).update(posts_count=F(...)) -
Я в принципе так и сделал, думал можно через связную таблицу возможно. Спасибо!
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

