Tôi có một mô hình:Django REST của khung: lĩnh vực mặc định ở dạng API browseable
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)
Và một serializer cho mô hình:
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'
Và đây là danh sách xem:
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)
Trong API có thể duyệt của CallList
, tôi thấy thông tin sau trong biểu mẫu BÀI ĐĂNG ở dưới cùng:
Câu hỏi của tôi là: tại sao không có giá trị mặc định được đặt cho send_on
và có một giá trị cho backup_calls
? Tôi giả định rằng biểu mẫu sẽ tuân theo đặc điểm kỹ thuật mô hình XCall
và sử dụng datetime.now()
để đặt mặc định trước đây và để trống backup_calls
(vì nó không có giá trị). Làm thế nào tôi có thể nhận được mẫu để làm theo các thông số kỹ thuật mô hình?
Bạn đã từng giải quyết vấn đề này chưa? Tôi hiện đang chạy vào nó. – user2734679