我有一个模型与字段示例,并有意见。我可以使,当你重定向到主页,你可以看到只有ID,标题,截止日期,完成?但当你重定向到详细信息页面,你可以看到所有的模型字段。
models.py:
class Task(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
body = models.TextField()
deadline = models.DateTimeField()
done = models.BooleanField()
views.py :
lass TaskList(generics.ListCreateAPIView):
# permission_classes = (IsAuthorOrReadOnly,)
queryset = Task.objects.all()
serializer_class = TaskSerializer
class TaskDetail(generics.RetrieveUpdateDestroyAPIView):
# permission_classes = (IsAuthorOrReadOnly,)
queryset = Task.objects.all()
serializer_class = TaskSerializer
serializers.py:
class TaskSerializer(serializers.ModelSerializer):
class Meta:
fields = (
"id",
"title",
"body",
"author",
"deadline",
"done",
)
model = Task
urls.py:
urlpatterns = [
path("<int:pk>/", TaskDetail.as_view(), name="task_detail"),
path("", TaskList.as_view(), name="task_list"),
]
请添加有用阅读材料的链接
1条答案
按热度按时间ni65a41a1#
动态修改字段:
序列化程序初始化后,可以使用. fields属性访问在序列化程序上设置的字段字典。访问和修改此属性允许动态修改序列化程序。
直接修改fields参数允许您执行一些有趣的操作,例如在运行时而不是在声明序列化程序时更改序列化程序字段的参数。
遵循上述文档中的示例:
serializers.py
在
views.py
上,您可以覆盖ListCreateAPIView提供的get
或ListModelMixin提供的list
方法,如本示例和以下代码块所示:views.py