На самом деле, я не уверен, как rest_framework сериализует мои байты данных, это предположение. Я пытался найти, как это работает, но ничего не произошло. Я думаю, что для моего процесса десериализации это не важно, потому что он уже представлен как-то байтами, и мне нужно найти способ, как его десериализовать.
Я использую:
python 3.8.0
Django 3.0.3
djangorestframework 3.11.0
Мой код:
root файл urls
from django.contrib import admin
from django.urls import path, include
from django.conf.urls import url
from rest_framework import routers
import rest_framework
from AccontsCenter.views import AccountViewSet
from rest_framework.serializers import HyperlinkedModelSerializer
from django.contrib.auth.models import User, Group
class UserSerializer(HyperlinkedModelSerializer):
class Meta:
model = User
fields = ["url", "username", "email"]
from rest_framework.viewsets import ViewSet, ModelViewSet
class UserViewSet(ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
router = routers.DefaultRouter()
router.register(r"users", UserViewSet)
router.register(r"accounts", AccountViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
path('admin/', admin.site.urls),
# path('accounts/', include('AccontsCenter.urls')),
# path('proxies/', include('Proxies.urls')),
# url(r'^', include(router.urls)),
# url(r'^api-auth/', include("rest_framework.urls", namespace="rest_framework"))
]
Модель аккаунта is:
import typing
import inspect
import os, sys
import json
from django.db import models
from Accounts import FloodAccount
from modules_simpified import loadFromModules
# modules_obj_list = loadFromModules()
class Account(models.Model):
# on_add_acc_events: typing.List[typing.Callable] = [(name, obj) for name, obj in vars(modules_obj_list).items() if inspect.isfunction(obj)]
on_add_acc_events = []
username = models.CharField(max_length=200)
email = models.CharField(max_length=200)
password = models.CharField(max_length=200)
mail_agent = models.CharField(max_length=200)
cookies = models.BinaryField(null=True, blank=True, editable=True)
last_cookie_update = models.DateTimeField(null=True, blank=True)
is_banned = models.BooleanField(default=False)
processed = models.BooleanField(default=False)
in_processing = models.BooleanField(default=False)
Класс сериализации учетной записи:
from rest_framework.serializers import HyperlinkedModelSerializer
from rest_framework import permissions
from .models import Account
class AccountSerializer(HyperlinkedModelSerializer):
class Meta:
model = Account
fields = ["username", "email", "password", "mail_agent", "cookies", "last_cookie_update", "is_banned", "processed", "in_processing"]
viewset account:
from rest_framework.viewsets import ViewSet, ModelViewSet
from rest_framework import permissions
from .models import Account
from .serializers import AccountSerializer
class AccountViewSet(ModelViewSet):
queryset = Account.objects.all()
serializer_class = AccountSerializer
permissions = [permissions.IsAuthenticated]
что я делаю, чтобы получить учетные записи из AccountViewSet:
import requests
import json
results = json.loads(requests.get("http://127.0.0.1:8000/accounts").text)["result"]
# cookie that i need to deserialize
cookie = results[0]["cookie"]