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