gpt4 book ai didi

python - 如何从 django Rest Frameworks 基于类的创建 View 将对象添加到我的用户配置文件上的 M2M 字段?

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:06 24 4
gpt4 key购买 nike

我正在尝试让登录用户将媒体添加到 DRF 通用创建 View 中用户配置文件的媒体字段中。有人试过这个吗?这是我的观点和模型:

class MediaCreate(generics.CreateAPIView):
"""
To create a media object, send a post request to:
/profiles/media/create/
In the format:
Audio: "audio file upload"
Title: "char field"
"""
queryset = Media.objects.all()
serializer_class = MediaSerializer



class Musician(ProfileModel):
summary = models.TextField(blank=True)
company = models.CharField(max_length=60, blank=True)
media = models.ManyToManyField('Media', blank=True)
timestamp = models.DateTimeField(auto_now_add=True, blank=True)


def __str__(self):
return '{}'.format(self.user.username)

最佳答案

所以我决定使用函数 api View 来完成此操作,这样我就可以使用请求将模型添加到配置文件中,而不需要任何 get 请求我知道检查 if 方法 == Post 是多余的,但它不会造成任何损害:

   @api_view(['POST'])
def MediaCreate(request):
context = {}
logged_on = False
if request.user.is_authenticated():
logged_on = True
visitor = request.user.musician
serializer = MediaSerializer(data=request.data)
if request.method == "POST":
if serializer.is_valid():
serializer.save()
try:
x = serializer.instance
visitor.media.add(x)
context['upload'] = True
except:
error = "Media Not Added to Profile"
context['logged_on',
'error',
'upload'] = logged_on, error, False
return JsonResponse(
data=context,
status=status.HTTP_400_BAD_REQUEST)
context['logged_on'] = logged_on
return JsonResponse(data=context, status=status.HTTP_200_OK)

关于python - 如何从 django Rest Frameworks 基于类的创建 View 将对象添加到我的用户配置文件上的 M2M 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com