字段“id”需要一个数字但得到“127.0.0.1”

时间:2021-04-13 10:40:30

标签: django django-models django-views

我正在通过 ip 获取视频观看次数,首先我创建一个视图来获取用户的 ip 并存储在此模型中

class UsersByIP(models.Model):
ip_user = models.TextField()

my video model
class Video(models.Model):
        author = models.ForeignKey(Account, on_delete=models.CASCADE)
        video = models.FileField(upload_to=get_video_filepath, validators=[validate_file_extension, validate_file_size])
        viewers_by_ip = models.ManyToManyField(UsersByIP, default=None, blank=True)

然后这是我获取当前用户 ip 的视图,如果它不是视频视图的存储,则存储它

         num_views_by_ip = Video.objects.annotate(
                num_views_ip=Count('viewers_by_ip'),
            ).order_by('-viewers_by_ip')
            data = get_object_or_404(num_views_by_ip, pk=pk)
            if not request.user.is_authenticated:
                __, created = Video.viewers_by_ip.through.objects.get_or_create(
                    video=data,
                    usersbyip=self.request.META.get('REMOTE_ADDR')
                )
                if created:
                    data.num_views_ip += 1

0 个答案:

没有答案