Ich verwende Django Rest Framework, um eine Blog -Website zum Spaß zu erstellen. Ich benutze Neon DB für die Datenbank. Ich habe ein Benutzermodell, in dem ich mit DateTimetz DataType ein Attribut created_at habe. Ich habe auch den Standardwert auf jetzt () festgelegt und im Serializer habe ich das Attribut auf read_only_fields festgelegt. Wenn ich jedoch eine Postanforderung zum Erstellen eines neuen Benutzers mache, wird Null in das Feld eingefügt, und das created_at wird in der Datenbanktabelle als Null gefüllt. /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>
Mein Serializer: < /p>
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = Users
read_only_fields = ('created_at',)
fields = '__all__'
< /code>
Meine Ansicht: < /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>
Ich habe dies versucht: < /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>
Es hat nicht funktioniert und ich möchte das nicht tun. Ich möchte, dass DRF das Feld created_at nicht einbezieht und die Tabelle Neon DB den Standardwert für das Feld festlegen kann.
Django Rest Framework Serializer read_only_fields funktioniert nicht ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Django Rest Framework – Fehler beim Nested Serializer-Attribut als Antwort
by Anonymous » » in Python - 0 Replies
- 19 Views
-
Last post by Anonymous
-