小编Hen*_*y H的帖子

'ListSerializer'对象不可调用

我正在尝试使用content_type对象为投票应用程序实现Django-Rest框架.我尝试使用serializers.py 的rest-framework-generic-relations.在我看来,错误可能在serializer.py/views.py中,但我是这个框架的新手,非常感谢你的帮助!

views.py:

class vote_detail(generics.RetrieveUpdateDestroyAPIView):
    queryset = VotedItem.objects.all()
    serializer_class = VoteSerializer(queryset, many=True)
Run Code Online (Sandbox Code Playgroud)

serializers.py:

from rest_framework import serializers
from .models import VotedItem
from posts.models import Post
from generic_relations.relations import GenericRelatedField

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ('title',)

class VoteSerializer(serializers.ModelSerializer):
        """
        A `VotedItem` serializer with a `GenericRelatedField` mapping all possible
        models to their respective serializers.
        """
    voted_object = GenericRelatedField({
        Post: PostSerializer(),
    })

    class Meta:
        model = VotedItem
        fields = ('user', 'voted_object')
Run Code Online (Sandbox Code Playgroud)

和models.py:

from __future__ import unicode_literals

from …
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework

6
推荐指数
1
解决办法
5596
查看次数

Django主键序列化器“此字段可能不为空”而allow_null = True

我一直在努力解决这个问题。

我不确定我错过了什么。

如果您有任何建议,请告诉我.. !!

模型.py

co_manager = models.ManyToManyField(BookRunner, blank=True, null=True, related_name="deal_co_manager")
Run Code Online (Sandbox Code Playgroud)

视图.py

 class DealAdminViewSet(viewsets.ModelViewSet):
      queryset = Deal.objects.all()
      serializer_class = CreateDealSerializer

      def create(self, request, format=None):
          data = ...all things data here.
          serializer = CreateDealSerializer(data=deal)
          print serializer
          co_manager_array = []
          if serializer.is_valid():
              serializer.save()
              return Response(status=status.HTTP_201_CREATED)
          else:
              return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

序列化程序.py

class CreateDealSerializer(serializers.Serializer):
    co_manager = serializers.PrimaryKeyRelatedField(allow_null=True, many=True, queryset=BookRunner.objects.all(), required=False)
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework

6
推荐指数
1
解决办法
6366
查看次数

使用电话或电子邮件登录/注册Django,allauth集成

我想修改我的django用户模型,以允许电话或电子邮件注册/登录。使用

USERNAME_FIELD = 'identifier'
Run Code Online (Sandbox Code Playgroud)

如果用户使用电话号码注册,则标识符将是其电话号码,或者是电子邮件,反之亦然。(如果有人认为我应该分配一些数字作为标识符,请告诉我。)

这是我的accounts.models:

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager
from phonenumber_field.modelfields import PhoneNumberField

class UserManager(BaseUserManager):
    def create_user(self, email, phone, password, **kwargs):
        """
        Creates and saves a Account with the given email or phone and password.
        """
        now = timezone.now()
        identifier = ''
        if not email:
            if not phone:
                raise ValueError('Users must have a valid email or phone address.')
            else:
                identifier = phone
        if not phone:
            if not email:
                raise ValueError('Users must have a …
Run Code Online (Sandbox Code Playgroud)

django authorization django-allauth

5
推荐指数
1
解决办法
1146
查看次数