默認字段我有一個模型:Django的REST框架:在瀏覽的API形式
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)
而且該型號串行:
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'
而這裏的列表視圖:
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)
在CallList
的可瀏覽API中,我在底部的POST表單中看到以下內容:
我的問題是:爲什麼沒有爲send_on
設置默認值,並且有一個用於backup_calls
?我認爲表格將遵循XCall
模型規範,並使用datetime.now()
來默認前者,並將backup_calls
留空(因爲它可以爲空)。我怎樣才能讓表單遵循模型規範?
你有沒有解決過這個問題?我目前正在遇到它。 – user2734679