I'm trying to get object from db. That's my model:
class Employee(models.Model):
class EmployeeRole(models.TextChoices):
DEFAULT = 'Default'
PM = 'PM'
ADMINISTRATOR = 'Administrator'
name = models.CharField(max_length=127, blank=False, null=False)
surname = models.CharField(max_length=127, blank=False, null=False)
login = models.CharField(max_length=127, blank=False, null=False)
password = models.CharField(max_length=1023, blank=False, null=False)
email = models.EmailField()
employee_role = models.CharField(max_length=31, choices=EmployeeRole.choices,
blank=False, null=False)
salary = models.DecimalField(max_digits=10, decimal_places=2)
department = models.ForeignKey(Department, on_delete=models.SET_NULL, null=True,
blank=True)
last_login_date = models.DateField(auto_now=True)
created_date = models.DateField(auto_now_add=True)
def __str__(self):
return f"{self.name} {self.surname} - {self.employee_role}"
That's my urls:
urlpatterns = [
path('employees/<int:pk>', views.employee_details),
path('employees/', views.employee_list_or_add),
]
And that's my views:
@csrf_exempt
def employee_list_or_add(request):
if request.method == 'GET':
employees = Employee.objects.get(id=4)
serializer = EmployeeSerializer(employees)
print(serializer)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = EmployeeSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
I'm learning with REST documentation, I'm on first chapter - serialization. But I can't get any objects from db. No matter if I use Employee.objects.all() (with many=True in serializer) like in documentation or Employee.objects.get(pk=4) like currently in my code - I'm always getting error
invalid literal for int() with base 10: b'17 21:19:04.767380'
That's the time of last_login_date of first record in Employee db. But in .get() function I specified 'pk' so why it's trying to filter it by datetime?
I would be very grateful for any help.