Django models Django Rest框架匿名用户错误
我在尝试“发布”时出现以下错误 我不清楚问题是什么Django models Django Rest框架匿名用户错误,django-models,django-rest-framework,Django Models,Django Rest Framework,我在尝试“发布”时出现以下错误 我不清楚问题是什么 ValueError: Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x7ffb62f48a00>": "Video.user" must be a "User" instance. 型号: class Video(models.Model): user = models.F
ValueError: Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x7ffb62f48a00>": "Video.user" must be a "User" instance.
型号:
class Video(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name='user',
on_delete=models.CASCADE
)
title = models.CharField(max_length=30, blank=False)
video = models.FileField(blank=False, upload_to=upload_path_video)
thumbnail = models.ImageField(blank=True, upload_to=upload_path_thum)
like = models.IntegerField(default=0)
dislike = models.IntegerField(default=0)
create_on = models.DateTimeField(auto_now_add=True)
scores = models.IntegerField(default=0)
hits = models.IntegerField(default=0)
class Meta:
ordering = ['-create_on']
def __str__(self):
return str(self.title)
视图:
我尝试在已登录时创建视频,但出现错误。这是否回答了您的问题?
class Video(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name='user',
on_delete=models.CASCADE
)
title = models.CharField(max_length=30, blank=False)
video = models.FileField(blank=False, upload_to=upload_path_video)
thumbnail = models.ImageField(blank=True, upload_to=upload_path_thum)
like = models.IntegerField(default=0)
dislike = models.IntegerField(default=0)
create_on = models.DateTimeField(auto_now_add=True)
scores = models.IntegerField(default=0)
hits = models.IntegerField(default=0)
class Meta:
ordering = ['-create_on']
def __str__(self):
return str(self.title)
class VideoViewSet(viewsets.ModelViewSet):
queryset = Video.objects.all()
serializer_class = serializers.VideoSerializer
authentication_classes = (authentication.TokenAuthentication,)
permissions_classes = (permissions.IsAuthenticated,)
def perform_create(self, serializer):
serializer.save(user=self.request.user)