I have a model with field instances and have views. Can i make so that when you redirect to to main page you can see only ID, title, deadline, done? But when you redirect to the detail page you can see all the model fields.
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"),
]
Please add a link to useful reading materials
Dynamically Modifying Fields:
Following the example on the above documentation:
serializers.py
On
views.py
you can either overrideget
provided by ListCreateAPIView orlist
method provided by ListModelMixin, like in this example and in the following codeblock:views.py