UNIQUE 约束失败:music_playlist.owner_id

UNIQUE constraint failed: music_playlist.owner_id

用户可以注册并登录到我的网站。当前登录我网站的用户可以创建自己的播放列表。但是当提交创建按钮时,它返回了这个错误:

UNIQUE constraint failed: music_playlist.owner_id

这是我的models.py:

class Playlist(models.Model):
    name = models.CharField(max_length=200, null=False, blank=False,default='')
    owner = models.ForeignKey(User, unique=True,null=True)

    def __str__(self):
        return self.name
    @property
    def playlist_id(self):
        return self.id

这是我的views.py(出现错误的地方):

@login_required
def create_playlist(request):
    form = PlaylistForm(request.POST or None)
    if form.is_valid():
        data = form.cleaned_data

        playlist = form.save(commit=False)
        playlist.owner = request.user

        playlist.save()
        #playlist_name = form.cleaned_data['name']
        context={
            'playlist':playlist,

            'form':form,
        }

        return render(request, 'create_playlist.html', context)
    context = {
        "form": form,
    }
    return render(request, 'create_playlist.html', {'form': form,})

当用户转到 create_playlist.html 时,他们可以键入播放列表的名称并单击创建按钮。我希望播放列表的所有者字段等于当前登录的用户。

非常感谢您的帮助。

请更正您的代码

class Playlist(models.Model):
    name = models.CharField(max_length=200, null=False, blank=False,default='')
    owner = models.ForeignKey(User, null=True)

    def __str__(self):
        return self.name
    @property
    def playlist_id(self):
        return self.id

当您将外键所有者设置为唯一时,意味着一个用户只能拥有一个播放列表。当您尝试为同一用户添加另一个播放列表时,您会收到此错误

UNIQUE constraint failed: music_playlist.owner_id

如果您希望一个用户只有一个播放列表,请使用OneToOneField