У объекта 'QuerySet' нет атрибута '_committed'
Интересно, почему мне трудно заставить эту функцию совместного доступа работать без того, чтобы не столкнуться с этой ошибкой 'QuerySet' объект не имеет атрибута '_committed' почему-то, когда я пытаюсь сохранить общий объект без добавления модели groupimage все, кажется, работает совершенно нормально, пока я не добавляю форму изображения и модель groupimage, тогда все начинает падать часть, Как мне заставить это работать? Я сделал глубокий поиск решения в стеке, но все как-то не подходят для моего случая! Буду признателен за помощь и обзоры, спасибо
Here is my view that handle shared Post
def share_post(request, pk):
original_post = Post.objects.prefetch_related('groupimage_set').get(pk=pk)
original_img = GroupImage.objects.filter(post=original_post)
group = Group.objects.get(groups=original_post.group.id)
form = ShareForm(request.POST, request.FILES)
if form.is_valid():
new_post = Post(
shared_body = request.POST.get('description'),
description = original_post.description,
username = original_post.username,
date_posted = original_post.date_posted,
group = original_post.group,
video = original_post.video,
shared_on = datetime.now(),
shared_user = request.user)
new_post.save()
form = GroupImageForm(request.POST, request.FILES)
if form.is_valid():
new_image = GroupImage(
post = original_post,
group = group,
image = original_img,
)
new_image.save()
return redirect('group:main',original_post.group.pk)
else:
form = ShareForm(request.POST, request.FILES)
ctx = {'form':form, 'original_post':original_post}
return render(request,'group/share_form.html', ctx)
TraceBack
Traceback (most recent call last):
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Umar\Desktop\dreams\group\views.py", line 318, in share_post
new_image.save()
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\base.py", line 726, in save
self.save_base(using=using, force_insert=force_insert,
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\base.py", line 763, in save_base
updated = self._save_table(
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\base.py", line 868, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\base.py", line 906, in _do_insert
return manager._insert(
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\query.py", line 1270, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\sql\compiler.py", line 1415, in execute_sql
for sql, params in self.as_sql():
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\sql\compiler.py", line 1358, in as_sql
value_rows = [
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\sql\compiler.py", line 1359, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\sql\compiler.py", line 1359, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\sql\compiler.py", line 1310, in pre_save_val
return field.pre_save(obj, add=True)
File "C:\Users\Umar\Desktop\dreams\env\lib\site-packages\django\db\models\fields\files.py", line 300, in pre_save
if file and not file._committed:
AttributeError: 'QuerySet' object has no attribute '_committed'