Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

218
Vistas
userpost () obtuvo un argumento de palabra clave inesperado 'instancia'

Estoy practicando un pequeño proyecto CRUD en django.

aquí está el views.py de crudproject

 from django.contrib import messages from django.shortcuts import get_object_or_404, redirect, render from .models import userpost from .forms import customerform #creating postdate def create(request): form= customerform() if request.method=='POST': Form=customerform(request.POST) if Form.is_valid(): Form.save() Form={} context ={'form':form} return render(request,'create.html',context) #reading the post def read(request): user_data=userpost.objects.all() context ={ 'user_data':user_data} return render(request,'read.html',context) #Updating the post def update(request,pk): get_user_data=get_object_or_404(userpost,pk=pk) form= userpost(instance=get_user_data) if request.method=='POST': form=userpost(request.POST,isinstance=get_user_data) if form.is_valid(): form.save() messages.success(request,'User data has been Updated') return redirect('read') context={'form':form} return render(request,'update.html',context) #deleting the post def delete(request,pk): get_user=get_object_or_404(userpost,pk=pk) get_user.delete() messages.error(request,'User deleted') return redirect('/')

urls.py del proyecto crud

 from django.urls import path from .import views urlpatterns = [ path('new/',views.create,name='create'), path('update<int:pk>/',views.update,name='update'), path('delete/<int:pk>/',views.delete,name='delete'), path('',views.read,name='read') ]

pero el servidor dice

 TypeError at /update8/ userpost() got an unexpected keyword argument 'instance' Request Method: GET Request URL: http://localhost:8000/update8/ Django Version: 3.2.8 Exception Type: TypeError Exception Value: userpost() got an unexpected keyword argument 'instance' Exception Location: C:\Users\ITS\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\base.py, line 503, in __init__

Por favor, ayúdame a resolver esto. Sería de mucha ayuda si me das una pequeña explicación. Gracias por adelantado

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En su vista de update , usa la publicación de userpost como modelo, no como un formulario. Por lo tanto, debería (y quizás primero definir) un formulario que funcione en una userpost de usuario, entonces:

 def update(request,pk): get_user_data = get_object_or_404(userpost,pk=pk) if request.method=='POST': # ↓ work with a form form = UserPostForm(request.POST, request.FILES, instance=get_user_data) if form.is_valid(): form.save() messages.success(request,'User data has been Updated') return redirect('read') else: # ↓ work with a form form= UserPostForm(instance=get_user_data) context={'form':form} return render(request,'update.html',context)

En urls.py , también olvidó una barra inclinada ( / ) entre la update y la clave principal:

 urlpatterns = [ # … # slash ↓ path('update/<int:pk>/',views.update,name='update'), # … ]
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda