Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Carga de archivos en django dando IntegrityError

Hice algunos campos personalizados en mi modelo de usuario de django, lo que estaba tratando de hacer es ofrecerle al usuario que configure su perfil enviando esos campos. Aunque mi modelo personalizado funciona bien, ya que puedo editarlos o agregarlos. campos en mi modo de sitio de administración.

Pero cuando intento enviar ese formulario como usuario, aparece un error como este:

 Exception Type: IntegrityError Exception Value: UNIQUE constraint failed: blog_profile.user_id

mis modelos.py :-

 class Profile(models.Model): user = models.OneToOneField(User,unique=True,on_delete=models.CASCADE,default=1) bio = models.TextField(max_length=500,null=True,blank=True) location = models.CharField(max_length=30,null=True,blank=True) birth_date = models.DateField(null=True,blank=True) pic=models.FileField(default='/user.png',null=True,blank=True) @receiver(post_save, sender=User) def create_user_profile(sender, instance, created, **kwargs): if created: Profile.objects.create(user=instance) @receiver(post_save, sender=User) def save_user_profile(sender, instance, **kwargs): instance.profile.save()

formularios.py :-

 class ProfileForm(forms.ModelForm): class Meta: model=Profile fields = ['bio','location','birth_date','pic']

vistas.py:-

 def set(request): if request.user.is_authenticated(): if request.method == 'POST': form=ProfileForm(request.POST,request.FILES) if form.is_valid(): item=form.save(commit=False) item.pic=request.FILES['pic'] item.save() return redirect('/blog') else: return HttpResponse('Invalid') else: form=ProfileForm() return render(request,'blog/set.html',{'form':form})

Mi plantilla para el conjunto es : -

 {% extends 'blog/base.html' %} {%block body%} <div class="container"> <div class="row">{{hell}} <div class="col-md-6 col-md-offset-3"> <div class="alert alert-success" role="alert"><strong>Well Done!</strong> {{user.username}} You Have Succesfully Registered!</div> </div> </div> <form method="POST" enctype="multipart/form-data">{% csrf_token %} {{form.as_p}} <input type="submit" value="Edit"> </form> </div> {%endblock%}

Este es mi intento, por favor ayúdenme, soy nuevo en todo esto, gracias de antemano.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

En primer lugar, no creo que deba proporcionar un valor predeterminado para el campo Usuario, ya que es OneToOneField, y especificar un valor predeterminado anula todo el propósito.

En segundo lugar, creo que el problema está en las señales de guardado posteriores, ya que ha especificado dos señales y una podría entrar en conflicto con la otra. Yo, de alguna manera, no puedo entender el propósito del segundo controlador de señal (save_user_profile). ¿Puedes quitar esto y probar?

over 4 years ago · Santiago Trujillo Relatório

0

Lo más probable es que ya tenga un perfil con esa identificación de usuario en la base de datos. Porque la relación es uno a uno. Un perfil solo puede tener uno y solo un usuario. Cuando guarde el formulario, si el perfil ya existe, debe actualizarlo en lugar de crearlo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda