Size: a a a

Django [ru] #STAY HOME

2019 December 27

M

Mike in Django [ru] #STAY HOME
Незнаю как сохранить фотки в модель. Делаю какую то фигню.
@api_view(['POST'])
def feedback(request):

   serializer = ScreenshotSerializer(request.FILES)
   for x in request.FILES.getlist('files'):
       data = x.read()
       photo = Screenshot(feedback=feedback)
       photo.image.save(x.name, ContentFile(data))
       photo.save()
       print(x, '<<<<')


   return Response('Hello world')
источник

M

Mike in Django [ru] #STAY HOME
получаю Cannot assign "<function WrappedAPIView at 0x7f8fd3c23550>": "Screenshot.feedback" must be a "Feedback" instance.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Mike
Незнаю как сохранить фотки в модель. Делаю какую то фигню.
@api_view(['POST'])
def feedback(request):

   serializer = ScreenshotSerializer(request.FILES)
   for x in request.FILES.getlist('files'):
       data = x.read()
       photo = Screenshot(feedback=feedback)
       photo.image.save(x.name, ContentFile(data))
       photo.save()
       print(x, '<<<<')


   return Response('Hello world')
photo = Screenshot(feedback=feedback)

feedback - где ?
источник

M

Mike in Django [ru] #STAY HOME
Мои модели
class Feedback(models.Model):

   user = models.ForeignKey(User, on_delete=models.CASCADE)
   title = models.CharField(max_length=120)
   text = models.TextField()
   created = models.DateTimeField(auto_now_add=True)

   def __str__(self):
       return self.title

class Screenshot(models.Model):

   feedback = models.ForeignKey(Feedback, on_delete=models.CASCADE)
   image = models.ImageField(upload_to="uploads/feedback/", verbose_name="Images", blank=True)
источник

M

Mike in Django [ru] #STAY HOME
Dan Tyan
photo = Screenshot(feedback=feedback)

feedback - где ?
Я ведь должен както заполнить поля в Feedback до того как фотки загрузить в Screenshot.
@api_view(['POST'])
def feedback(request):

   serializer = ScreenshotSerializer(request.FILES)
   feedback = Feedback.objects.all()
   for x in request.FILES.getlist('files'):
       data = x.read()
       photo = Screenshot(feedback=feedback)
       photo.image.save(x.name, ContentFile(data))
       photo.save()
       print(x, '<<<<')


   return Response('Hello world')
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Mike
Я ведь должен както заполнить поля в Feedback до того как фотки загрузить в Screenshot.
@api_view(['POST'])
def feedback(request):

   serializer = ScreenshotSerializer(request.FILES)
   feedback = Feedback.objects.all()
   for x in request.FILES.getlist('files'):
       data = x.read()
       photo = Screenshot(feedback=feedback)
       photo.image.save(x.name, ContentFile(data))
       photo.save()
       print(x, '<<<<')


   return Response('Hello world')
а зачем ты в FK поле пихаешь queryset ?
источник

M

Mike in Django [ru] #STAY HOME
Dan Tyan
а зачем ты в FK поле пихаешь queryset ?
Вот так тоже не работает
@api_view(['POST'])
def feedback(request):
   title = request.data.get('title')
   text = request.data.get('text')
   user = request.data.get('user')

   feedback = FeedbackSerializer(data=request.data)

   if feedback.is_valid():
       feedback.save()

   serializer = ScreenshotSerializer(request.FILES)

   for x in request.FILES.getlist('files'):
       data = x.read()
       photo = Screenshot(feedback=feedback)
       photo.image.save(x.name, ContentFile(data))
       photo.save()


   return Response('Hello world')
источник

M

Mike in Django [ru] #STAY HOME
получаю  "Screenshot.feedback" must be a "Feedback" instance.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Mike
получаю  "Screenshot.feedback" must be a "Feedback" instance.
у тебя feedback это что ? конкретно в этом куске кода
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Mike
получаю  "Screenshot.feedback" must be a "Feedback" instance.
Фидбек у тебя это сериалайзер, а должен быть объект модели Feedback
источник

M

Mike in Django [ru] #STAY HOME
Адилет Асанкожоев
Фидбек у тебя это сериалайзер, а должен быть объект модели Feedback
В модель Feedback сохраняет данные а в Screenshot модель фотки грузятся
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Mike
В модель Feedback сохраняет данные а в Screenshot модель фотки грузятся
проблема не в моделях
источник

M

Mike in Django [ru] #STAY HOME
вот это сохраняет в Feedback модель
источник

DT

Dan Tyan in Django [ru] #STAY HOME
проблема в конкретном куске кода
источник

DT

Dan Tyan in Django [ru] #STAY HOME
feedback = FeedbackSerializer(data=request.data)

тут feedback - это что?
источник

M

Mike in Django [ru] #STAY HOME
Dan Tyan
проблема не в моделях
ага, я понял что нужна модель а не сериалайзер
источник

M

Mike in Django [ru] #STAY HOME
<QueryDict: {'title': ['Сообщить о проблеме'], 'text': ['new maeeste'], 'user': ['11'], 'files': [<TemporaryUploadedFile: tmp.png (image/png)>, <TemporaryUploadedFile: me.jpg (image/jpeg)>]}>
источник

DT

Dan Tyan in Django [ru] #STAY HOME
?
источник

M

Mike in Django [ru] #STAY HOME
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ты ошибку то исправил ?
источник