Finish version
This commit is contained in:
parent
9f6fcf447d
commit
4d6f73ac63
@ -5,5 +5,5 @@ from rest_framework import serializers
|
|||||||
class NewsSerializer(serializers.HyperlinkedModelSerializer):
|
class NewsSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = News
|
model = News
|
||||||
fields = ['title', 'url', 'votes', 'created']
|
fields = ['id', 'title', 'url', 'votes', 'created']
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ from app.api.models import News
|
|||||||
from rest_framework import viewsets, mixins
|
from rest_framework import viewsets, mixins
|
||||||
from app.api.serializers import NewsSerializer
|
from app.api.serializers import NewsSerializer
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class NewsViewSet( mixins.UpdateModelMixin,
|
class NewsViewSet( mixins.UpdateModelMixin,
|
||||||
@ -19,11 +20,11 @@ class NewsViewSet( mixins.UpdateModelMixin,
|
|||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
|
||||||
def put(self, request, pk=None):
|
def put(self, request):
|
||||||
# Update
|
# Update
|
||||||
my_news = News.objects.get(pk)
|
my_news = News.objects.get(pk=request.data['id'])
|
||||||
my_news.votes = my_news.votes + 1
|
my_news.votes = my_news.votes + 1
|
||||||
my_news.save()
|
my_news.save()
|
||||||
# Devolvemos la noticia modificada
|
# Devolvemos la noticia modificada
|
||||||
serializer = News(my_news)
|
serializer = NewsSerializer(my_news)
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
11
app/web/forms.py
Normal file
11
app/web/forms.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
from django import forms
|
||||||
|
|
||||||
|
class NewsForm(forms.Form):
|
||||||
|
title = forms.CharField(
|
||||||
|
label='Titulo',
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
url = forms.URLField(
|
||||||
|
label='Ruta',
|
||||||
|
required=True
|
||||||
|
)
|
@ -1,10 +1,11 @@
|
|||||||
<!DOCTYPE html>
|
{% extends 'layouts/base.html' %}
|
||||||
<html lang="en">
|
{% block title %}Añadir nueva noticia{% endblock %}
|
||||||
<head>
|
{% block main %}
|
||||||
<meta charset="UTF-8">
|
<form novalidate method="post">
|
||||||
<title>Title</title>
|
{% csrf_token %}
|
||||||
</head>
|
{{ news_form.as_p }}
|
||||||
<body>
|
<p>
|
||||||
|
<input type="submit" value="Guardar">
|
||||||
</body>
|
</p>
|
||||||
</html>
|
</form>
|
||||||
|
{% endblock %}
|
@ -1,4 +1,6 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render, redirect, reverse
|
||||||
|
from app.api.models import News
|
||||||
|
from app.web.forms import NewsForm
|
||||||
|
|
||||||
|
|
||||||
def home(request):
|
def home(request):
|
||||||
@ -6,4 +8,19 @@ def home(request):
|
|||||||
|
|
||||||
|
|
||||||
def add_news(request):
|
def add_news(request):
|
||||||
return render(request, 'pages/add-news.html', {})
|
mi_form = NewsForm()
|
||||||
|
# Validamos el formulario
|
||||||
|
if request.method == 'POST':
|
||||||
|
mi_form = NewsForm(request.POST)
|
||||||
|
# Muestro los errores
|
||||||
|
if mi_form.is_valid():
|
||||||
|
# Guardo
|
||||||
|
mi_new_news = News()
|
||||||
|
mi_new_news.title = mi_form.cleaned_data.get('title')
|
||||||
|
mi_new_news.url = mi_form.cleaned_data.get('url')
|
||||||
|
mi_new_news.save()
|
||||||
|
# Redirecciono a Home
|
||||||
|
return redirect(reverse('list'))
|
||||||
|
return render(request, 'pages/add-news.html', {
|
||||||
|
'news_form': mi_form
|
||||||
|
})
|
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
@ -16,6 +16,18 @@ new Vue({
|
|||||||
.then((json) => {
|
.then((json) => {
|
||||||
this.news = json;
|
this.news = json;
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
votar: function (id) {
|
||||||
|
fetch('/api/v1/news/', {
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
},
|
||||||
|
method: 'PUT',
|
||||||
|
body: JSON.stringify({ id: id })
|
||||||
|
})
|
||||||
|
.then((json) => {
|
||||||
|
this.getNews();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
Loading…
Reference in New Issue
Block a user