Django rest framework 如何使用django api rest在django中创建表单页面
我正在使我的代码适应其余的Django API。我正在使用Django Api Rest文档。作为Django Rest API的新手,我在某些方面遇到了一些问题和疑问:尤其是表单方面Django rest framework 如何使用django api rest在django中创建表单页面,django-rest-framework,django-forms,django-views,django-urls,django-serializer,Django Rest Framework,Django Forms,Django Views,Django Urls,Django Serializer,我正在使我的代码适应其余的Django API。我正在使用Django Api Rest文档。作为Django Rest API的新手,我在某些方面遇到了一些问题和疑问:尤其是表单方面 给定CalendarGroupList类,一个home.html文件,其中有一个指向url的按钮(name=group_newprove1)。如何修改类和form.html的代码以打开form.html页面并使表单工作?我已经评论了post函数的最后两个笑话,因为我不知道该放什么进去 给定一个Calendars
path('homeProva1/', views.CalendarGroupList.as_view()), #LISTA EDIFICI OK
path('homeProva1/<int:pk>/calendars/', views.CalendarsOfGroupList.as_view()), #LISTA CALENDARI DI QUEL PK EDIFICIO OK
path('homeProva1/<int:pk>/calendars/<int:pk1>/events/', views.EventsOfCalendarList.as_view()), #LISTA EVENTI DI QUEL PK CALENDARIO OK
path('homeProva1/group/new/', views.CalendarGroupList.as_view(), name='group_newprova1'), #NUOVO GRUPPO
path('homeProva1/group/<int:pk>/calendar/', views.CalendarGroupList.as_view(), name='caledar_newprova1'), #NUOVO CALENDARIO
在form.hmtl中:
<form action="{% url '' %}" method="POST">
{% csrf_token %}
{% render_form serializer %}
<input type="submit" value="Save">
</form>
class CalendarGroupList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'cal/home.html'
"""
List all calendargroups, or create a new calendargroup.
"""
def get(self, request, format=None):
calendargroups = CalendarGroups.objects.all()
serializer = CalendarGroupsSerializer(calendargroups, many=True)
#return Response(serializer.data)
return Response({'object_list': calendargroups})
def post(self, request, format=None):
serializer = CalendarGroupsSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
#return Response(serializer.data, status=status.HTTP_201_CREATED)
#return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class CalendarsOfGroupList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'cal/calendarOfGroup.html'
"""
List all calendarOfGroups, or create a new calendarOfGroup.
"""
def get_object(self, pk):
try:
return Calendar.objects.filter(group=pk)
except Calendar.DoesNotExist:
raise Http404
def get(self, request, pk, format=None):
calendar = self.get_object(pk)
print (calendar)
serializer = CalendarSerializer(calendar)
#return Response(serializer.data)
return Response({'object_list': calendar})
<form action="{% url '' %}" method="POST">
{% csrf_token %}
{% render_form serializer %}
<input type="submit" value="Save">
</form>
class CalendarGroups(models.Model):
name = models.CharField(max_length = 155, blank=True, null=True, unique=True)
def __str__(self):
#self.name = name
return str(self.name)
@property
def get_html_url(self):
url = reverse('', args=(self.id,))
return f'<a href="{url}"> {self.name} </a>'
class Calendar(models.Model):
name = models.CharField(max_length=200, unique=True)
#created_by
group = models.ForeignKey(CalendarGroups, on_delete = models.CASCADE, default='')
@property
def get_html_url(self):
url = reverse('cal:calendar_view', args=(self.id, self.group))
return f'<a href="{url}"> {self.name} </a>'
class CalendarGroupsSerializer(serializers.ModelSerializer):
class Meta:
model = CalendarGroups
fields = ['id', 'name']
class CalendarSerializer(serializers.ModelSerializer):
class Meta:
model = Calendar
fields = ['id', 'name', 'group']