Django - crud basado en clases

 
Vista:
sin imagen de perfil
Val: 10
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

crud basado en clases

Publicado por Max (7 intervenciones) el 01/02/2019 21:23:05
Eliminar y editar registros usando las clases deleteview y updateview aparecen en la web y todas explican con el mismo ejemplo. el cual funciona, pero siempre que el modelo te genere el id de forma automatica, entonces en las url se usa <pk> y este logra encontar el registro a borrar o editar. Pero si mi modelo ya tiene definida la clave no hay forma de que funcione, ¿ALGUIEN SABE O PUEDE DAR UNA PISTA DE COMO HACER?

MI MODELO 8QUE NO GENERA EL ID DE FORMA AUTOMATICA ES:

modelo:

1
2
3
4
5
class General(models.Model):
    #id_general = models.AutoField(primary_key=True)  (ESTE NO VA, LO PUSE PARA MOSTAR LO QUE QUIERO)
    item_general = models.CharField(primary_key=True, max_length=20)
    general = models.CharField(max_length=50)
    avance_general = models.FloatField(default =0)

la vista es de lo mas sencilla:

1
2
3
4
5
6
7
8
9
10
11
12
class GeneralDelete(DeleteView):
	model = General
	template_name = 'general_delete.html'
	success_url = reverse_lazy('general_listar')
 
class GeneralList(LoginRequiredMixin, ListView):
	login_url = '/'
	redirect_field_name = '/'
	model = General
	template_name = 'general_list.html'
	#paginate_by = 20
	print("printing a message...")


la url es

1
2
url(r'^general/', GeneralList.as_view(), name='general_listar'),
url(r'^z(?P<pk>\d+)/$', GeneralDelete.as_view(), name='general_borrar'),

el html o template es

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{% if object_list %}
 
{% for generales in object_list %}
<tr>
<td> {{generales.item_general}}</td>
<td> {{generales.general}} </td>
<td> {{generales.avance_general}}</td>
<td> <a class="btn btn-danger btn-xs" href="{% url 'general_borrar' generales.item_general %}">Eliminar</a></td>
</tr>
{% endfor %}
{% else %}
<tr>
 <!--  No hay Propiedades que mostrar, Adicione una. Pulsando -->
{% endif %}


el error es

Reverse for 'general_borrar' with arguments '('3.1',)' not found. 1 pattern(s) tried: ['cat/z(?P<pk>\\d+)/$']

¿¿¿ALGUIEN HA USADO ESTAS CLASES, TENIENDO UN PRIMARYKEY PROPIO Y QUE FUNCIONE???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 10
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

crud basado en clases

Publicado por Max (7 intervenciones) el 01/02/2019 21:42:23
BUENO:
NO ERA LO QUE PENSABA Y FINALMENTE ME FUNCIONO, UN PEQUEÑO DETALLE EL CUAL PASE POR ALTO UNA Y OTRA VEZ.

LA RESPUESTA ESTA EN LA URL:

url(r'^z(?P<pk>[\w.-]+)/$', GeneralDelete.as_view(), name='general_borrar'),


ESPECIFICAMENTE ESTO : [\w.-]+

DISCULPEN, Y GRACIAS POR LOS QUE ESTABAN BUSCANDO EL ERROR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar