gpt4 book ai didi

Django 用户配置文件 slug 字段

转载 作者:行者123 更新时间:2023-12-05 04:17:33 25 4
gpt4 key购买 nike

我正在寻找创建一个 url 以使用 slug 访问用户配置文件。 IE。我想访问 /profile/myname 以调出我的用户配置文件。我遇到的困难是为用户模型实现 slug 字段。

此外,不确定这是否重要,但我创建了一个 UserProfile 模型,它扩展了标准 User 模型,如下所示:

from django.contrib.auth.models import User
from autoslug import AutoSlugField


class UserProfile(models.Model):

user = models.ForeignKey(User, related_name='profile_name')
about_me = models.TextField(null=True, blank=True)
slug = AutoSlugField(populate_from='User.username', default='', unique=True)

出现错误(尝试迁移时):

DETAIL:  Key (slug)=() is duplicated.

我相信这些 url 是正确的,但已包含它以供引用(在名为 profile 的应用程序中):

url(r'^(?P<slug>[\w-]+)', views.detail, name='detail')

最佳答案

这意味着您在 userprofile 表中已经有一些记录在 slug 字段中具有空/空值。因为您将该字段标记为 unique=True,所以它只能有一个字段为空值。为避免此错误,请删除 slug 字段中具有空值的记录,或者只为它们分配一个唯一的 slug,这样就可以了。

正如您从上面所理解的,在具有 unique=True 的字段中使用 default='' 是行不通的。 Unique 意味着唯一,即使 '' 作为空值也被认为是唯一值,如果您有 unique=True,则可以只在一行中使用。这也意味着您不能在唯一字段中使用任何默认值。

关于Django 用户配置文件 slug 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22433658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com