Ich habe ein Modell:Django REST Framework: Standardfelder in browseable API Form
class XCall(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
send_on = models.DateTimeField(default=datetime.now)
recipient = models.ForeignKey(User)
text = models.CharField(max_length=4096)
backup_calls = models.IntegerField(blank=True, null=True)
und einen Serializer für dieses Modell:
class CallSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(
view_name='call-detail',
)
# some validation and custom field definitions
...
class Meta:
model = XCall
fields = ('url', 'id', 'text', 'recipient', 'send_on', 'backup_calls', 'status')
lookup_field= 'pk'
Und hier ist die Listenansicht:
class CallList(generics.ListCreateAPIView):
serializer_class = CallSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrSuperuser,)
def pre_save(self, obj):
auth_user = self.request.user
obj.auth_user = auth_user
def get_queryset(self):
"""
This view should return a list of all the calls
for the currently authenticated user.
"""
auth = self.request.user
if isinstance(auth, AnonymousUser):
return []
elif auth.is_superuser:
return XCall.objects.all()
else:
return XCall.objects.filter(auth_user=auth)
In browsenbare API CallList
, sehe ich das folgende in das POST-Formular:
Meine Frage ist: Warum gibt es keinen Standardwert für send_on
, und es gibt einen für backup_calls
? Ich nahm an, dass das Formular der XCall
Modellspezifikation folgen würde und datetime.now()
für das Ausfallen des ersteren verwenden und leer lassen (da es Nullable ist). Wie kann ich das Formular den Modellspezifikationen folgen lassen?
Haben Sie dieses Problem jemals gelöst? Ich laufe gerade hinein. – user2734679