首页 > 解决方案 > 如果我不更新其余框架中的图像,我将无法更新数据

问题描述

我在创建无法更新数据的 API-SERVER 时遇到问题,如果它不包含在映像中的更新中。我希望在不更新图像部分的情况下保存数据

视图.py

@api_view(['GET', 'PUT'])
def Datapengaturan(request, id):
    snippet = Pengaturan.objects.get(id=id)
    query = Pengaturan.objects.filter(id = id)
    if request.method == 'PUT':
        serializer = SerializerPengaturan(snippet, data=request.data)
        if serializer.is_valid():
            print('successfull')
            serializer.save()
            return Response(serializer.data)
        else:
            print('data tidak valid')
            return Response(serializer.data)
    elif request.method == 'GET':
        serializer = SerializerPengaturan(query, many=True)
        return JsonResponse(serializer.data, safe=False)
    return JsonResponse(serializer.errors)

模型.py

class Pengaturan(models.Model):
    title_bar = models.CharField(max_length = 100)
    title_sub = models.CharField(max_length= 100)
    img_main = models.ImageField(upload_to='picture/', blank=True)
    title_about = models.CharField(max_length= 100)
    content_about = models.CharField(max_length = 2000)
    email_about = models.EmailField()
    phone_about = models.CharField(max_length=20)
    img_about = models.ImageField(upload_to='picture/', blank=True)

序列化程序.py

class SerializerPengaturan(serializers.ModelSerializer):
    class Meta:
        model = Pengaturan
        fields = '__all__'

网址.py

from django.urls import path, include
from .views import TampilData, Datapengajarstaff, Detailpengajarstaff, Datapengumuman, Detaildatapengumuman,Datajadwal, Detaildatajadwal, Datapengaturan
urlpatterns = [
    path('visimisi/<int:id>', TampilData, name='TampilDataVisimisi'),
    path('pengajarstaff/',Datapengajarstaff, name='DataPengajarStaff'),
    path('Detailpengajarstaff/<int:id>', Detailpengajarstaff, name='Detailpengajarstaff' ),
    path('pengumuman/', Datapengumuman, name= 'DataPengumuman' ),
    path('pengumuman/<int:id>', Detaildatapengumuman, name='Detaildatapengumuman'),
    path('jadwal/', Datajadwal, name="datajadwal"),
    path('jadwal/<int:id>', Detaildatajadwal, name='Detaildatajadwal'),
    path('pengaturan/<int:id>', Datapengaturan, name='Datapengaturan')
]

标签: django-rest-framework

解决方案


推荐阅读