Я использую Framework Django REST для создания веб -сайта блога для развлечения. Я использую Neon DB для базы данных. У меня есть пользовательская модель, в которой у меня есть атрибут create_at с Datetimetz DataType. Я также установил значение по умолчанию в настоящее время (), а в сериализаторе я установил атрибут для read_only_fields. Но когда я делаю запрос в посте, чтобы создать нового пользователя, он помещается в NULL в поле, а create_at заполняется как нулевая в таблице баз данных. /p>
class Users(models.Model):
user_id = models.AutoField(primary_key=True,null=False,blank=True)
username = models.CharField(max_length=100)
email = models.CharField(max_length=254)
password_hash = models.CharField(max_length=30, blank=True, null=True)
created_at = models.DateTimeField(null=False,blank=True)
class Meta:
managed = False
db_table = 'users'
< /code>
my serializer: < /p>
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = Users
read_only_fields = ('created_at',)
fields = '__all__'
< /code>
my view: < /p>
class UsersList(APIView):
"""
get all users or create a single user
"""
def get(self, request, format=None):
users = Users.objects.all()
serializer = UserSerializer(users,many=True)
return Response(serializer.data,status=status.HTTP_200_OK)
def post(self, request, format=None):
serializer = UserSerializer(data = request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data,status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
< /code>
Я попробовал это: < /p>
class UserSerializer(serializers.ModelSerializer):
created_at = serializers.SerializerMethodField()
class Meta:
model = Users
read_only_fields = ('created_at',)
fields = '__all__'
def get_created_at(self, instance):
return instance.created_at.strftime("%B %d %Y")
< /code>
Это не сработало, плюс я не хочу этого делать. Я хочу, чтобы DRF не включал поле create_at и пусть таблица Neon DB установила значение по умолчанию для поля.
Подробнее здесь: https://stackoverflow.com/questions/794 ... s-not-work
Django Rest Framework Serializer read_only_fields не работает ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение