Я не могу добавить изображение через object.create в Django
Добрый день, пытаюсь вставить изображение в базу через object.create
, но оно никак не вставляется, все остальное вставляется до другого изображения.
Создается изображение, которое я уже проверил, и оно корректно загружается как jpg. Но я не могу использовать его иначе, чем через путь, а я хочу, чтобы оно автоматически вставлялось.
Код вставки, который я использую:
stringRegisto = RegistoString.objects.create(string=string_registro,rostosDetectados=frame_io, ecra=estacao_trabalho.owner.photo)
путь по пути, который работает:
stringRegisto = RegistoString.objects.create(string=string_registro, rostosDetectados="/rostos/frame_io.jpg", ecra=estacao_trabalho.owner.photo)
Views.py
def run_recognition(self, request, frame):
print("Executando reconhecimento facial...")
rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# Encontra as localizações das faces no frame
face_locations = face_recognition.face_locations(rgb_frame)
# Captura as caracteristicas faciais
face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
face_names = []
last_face_names = request.session.get('last_face_names', [])
_, frame_encoded = cv2.imencode('.jpg', frame)
cv2.imwrite('frames/frame_io.jpg', frame)
frame_io = ContentFile(frame_encoded.tobytes())
if len(face_encodings) >= 2: # Se houver mais de um rosto no frame
self.no_face_count = 0
print("Dois rostos na imagem.")
face_names = []
for face_encoding in face_encodings:
matches = face_recognition.compare_faces(self.known_face_encodings, face_encoding)
name = "Unknown"
if True in matches:
first_match_index = matches.index(True)
name = self.known_face_names[first_match_index]
face_names.append(name)
estacao_trabalho = EstacaoTrabalho.objects.get(uuid=self.uuid)
# Ordena os nomes por ordem alfabética
face_names.sort()
print("Rostos reconhecidos:", ", ".join(face_names))
estacao_owner_name = estacao_trabalho.owner.name
# Verifica se houve mudança nos rostos reconhecidos
if last_face_names == face_names:
print("Rostos reconhecidos permanecem os mesmos, não criando registro.")
else:
# Verifica se o owner da EstacaoTrabalho tem um nome diferente dos rostos reconhecidos
if estacao_trabalho.owner: # Verifica se a estação de trabalho tem um proprietário
# Se tiver um proprietário, atribui o nome do proprietário à variável estacao_owner_name
print("Owner da estação de trabalho:", estacao_trabalho.owner.name)
estacao_owner_name = estacao_trabalho.owner.name
else:
print("Estação de trabalho sem proprietário.")
# Se não tiver um proprietário, atribui uma string vazia à variável estacao_owner_name
estacao_owner_name = ""
string_registro = f"{', '.join(face_names)} estão a visualizar a tela de {estacao_owner_name} na estacao {estacao_trabalho.name}"
if not frame_io:
raise ValueError("Nenhuma imagem fornecida")
stringRegisto = RegistoString.objects.create(string=string_registro, rostosDetectados="/rostos/frame_io.jpg", ecra=estacao_trabalho.owner.photo)
stringRegisto.save()
print("Registro de string criado:", string_registro)
request.session['last_face_names'] = face_names
Модели
=======
class RegistoString(models.Model): #Tabela RegistosString
string = models.CharField(max_length=100, null=True)
rostosDetectados = models.ImageField(upload_to='rostos/',null=True)
ecra = models.ImageField(upload_to='ecra/',null=True)
def __str__(self):
return self.string