4

Я сделал пользовательскую модель пользователя, ссылаясь на tutorial, это как я сериализовать новую модель пользователя:Как сериализовать пользовательские модели пользователя в ФПИ

Serializers.py

from django.conf import settings 
User = settings.AUTH_USER_MODEL 

class UserSerializer(serializers.ModelSerializer): 
    post = serializers.PrimaryKeyRelatedField(many=True, queryset=Listing.objects.all()) 
    class Meta(object): 
     model = User 
     fields = ('username', 'email','post') 

Views.py

from django.conf import settings 
User = settings.AUTH_USER_MODEL 
class UserList(generics.ListAPIView): 
    queryset = User.objects.all() 
    serializer_class = UserSerializer 

Но когда я попытался использовать этот сериализатор, я Г.Е. т

объект '' STR не имеет атрибута '_meta'

Что я делаю не так?

ответ

10

Вместо

User = settings.AUTH_USER_MODEL 

использования

from from django.contrib.auth import get_user_model 
User = get_user_model() 

Помните, что settings.AUTH_USER_MODEL просто string, что указывает на то, какой пользователь модели вы будете использовать не саму модель. Если вы хотите получить модель, используйте get_user_model

+1

Да, вы правы. Но для django 1.8 это должно быть 'from django.contrib.auth import get_user_model' –

+0

@ dev-jim исправил его. – levi

Смежные вопросы