This is the currently layout of the files that I'm using for my django project and database.
Models.py:
from django.db import models
import json
# Create your models here.
class Data(models.Model):
node_id = models.ForeignKey("Node", on_delete=models.CASCADE)
timestamp = models.DateTimeField()
vibration = models.IntegerField()
moisture = models.IntegerField()
gps_latitude = models.CharField(max_length=250)
gps_longitude = models.CharField(max_length=250)
gyro_x = models.FloatField()
gyro_y = models.FloatField()
gyro_z = models.FloatField()
accelero_x = models.FloatField()
accelero_y = models.FloatField()
accelero_z = models.FloatField()
displacement = models.IntegerField()
class Node(models.Model):
node_id = models.IntegerField(primary_key=True)
serializers.py:
from .models import Data,Node
from rest_framework import serializers
class DataSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = '__all__'
class NodeSerializer(serializers.ModelSerializer):
class Meta :
model = Node
fields = '__all__'
class AcceleroXSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = ['timestamp', 'accelero_x']
views.py:
class DataViewSet(viewsets.ModelViewSet):
queryset = Data.objects.all()
serializer_class = DataSerializer
filter_backends = [DjangoFilterBackend]
filterset_fields = ['node_id']
class MapView(viewsets.ModelViewSet):
queryset = Data.objects.filter(node_id=1).order_by('-id')[:1]
serializer_class = DataSerializer
class NodeViewSet(viewsets.ModelViewSet):
queryset = Node.objects.all()
serializer_class = NodeSerializer
class AcceleroXViewSet(viewsets.ModelViewSet):
queryset = Data.objects.all()
serializer_class = AcceleroXSerializer
urls.py:
router = routers.DefaultRouter()
router.register(r'data', DataViewSet, 'data')
router.register(r'node', NodeViewSet, 'node')
router.register(r'map', MapView, 'map')
router.register(r'accelerox', AcceleroXViewSet, 'accelerox')
urlpatterns = [
path('admin/', admin.site.urls),
path(r'api/', include(router.urls)),
path(r'', include('rest_framework.urls', namespace='rest_framework')),
path('charts/', Charts.as_view(), name='charts'),
path('charts2/', ChartsDua.as_view(), name='charts2'),
path('chartnode/', ChartNode.as_view(), name='chartnode'),
path('map/', Map.as_view(), name='map'),
path('addnode/', views.add_node, name='add-node'),
path('node/', TambahNode.as_view(), name='tambahnode'),
]
When I do make migrations, it runs just fine. But when I do migrate it gets the following errorm which I don't know how to resolve:
File "E:\api\env\lib\site-packages\django\db\models\fields__init__.py", line 1821, in get_prep_value return int(value) ValueError: invalid literal for int() with base 10: ''