首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >唯一约束失败: music_playlist.owner_id

唯一约束失败: music_playlist.owner_id
EN

Stack Overflow用户
提问于 2017-04-17 05:24:50
回答 1查看 832关注 0票数 0

用户可以注册和登录到我的网站。现在登录到我的网站的用户可以创建他们自己的播放列表。但是当提交create按钮时,它返回了以下错误:

唯一约束失败: music_playlist.owner_id

这是我的models.py:

代码语言:javascript
复制
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(发生错误的地方):

代码语言:javascript
复制
@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时,他们可以键入播放列表的名称并单击create按钮。我希望播放列表的所有者字段与当前登录的用户相等。

我们非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-17 05:33:52

请更正您的代码

代码语言:javascript
复制
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

当您使外键所有者唯一时,这意味着一个用户只能有一个播放列表。当您试图为同一个用户添加另一个播放列表时,您将得到以下错误

唯一约束失败: music_playlist.owner_id

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43445617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档