Python 从用户生成slugfield

Python 从用户生成slugfield,python,django,decorator,slug,Python,Django,Decorator,Slug,这是我的models.py文件 class UserProfile(models.Model): user = models.ForeignKey(User, unique=True) toc = models.BooleanField(default=False) dob = models.DateField(blank=False, null=True) street_address = models.CharField(max_length=100, bla

这是我的models.py文件

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    toc = models.BooleanField(default=False)
    dob = models.DateField(blank=False, null=True)
    street_address = models.CharField(max_length=100, blank=False, null=False)
    city = models.CharField(max_length=100, blank=False, null=False)
    zip_code = models.PositiveIntegerField(blank=False, null=True)
    state = models.CharField(max_length=50, choices=states)
    slug = models.SlugField()
    def save(self, **kwargs):
        slug = '%s' % (self.user.username)
        unique_slugify(self, slug)
        super(UserProfile, self).save()
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])

我想从User中的用户名生成我的UserProfile.slug。我该怎么做呢?

除非您有充分的理由自己编写一个,否则我建议使用django提供的slagify()方法,并按照以下思路进行操作:

def save(self, **kwargs):
    from django.utils.text import slugify

    self.slug = slugify(self.user.username)
    super(UserProfile, self).save()
这假设您使用的是1.6。唯一可能发生变化的是从何处导入。我注意到他们经常喜欢改变这些事情


文档:

你能粘贴你独特的slagify功能吗?我的挑战是如何将它粘贴到slagify用户名。我可以对任何本机字段(即城市、州、zipcode)进行slugify,但从用户模型中使用self.User.username获取用户名不会返回结果。我只是在用户模型上测试了我的代码,结果正常。如果它对你不起作用,你能发布你独特的_slagify()吗?谢谢。其实你是对的。它确实有效。我意识到我真正的问题是别的,尽管我还没有弄清楚是什么。我从这个django代码片段中得到了唯一的_slugify来重申和澄清,唯一的_slugify()适用于所有其他字段?只是不是用户。用户名?不是。我犯了一个错误。它正在使用user.username。我的模型没有返回slug,我认为这与代码有关,但后来我意识到我在admin.py中为管理员注册了我的模型,这干扰了扩展用户模型的fk。不管怎样,我已经解决了。谢谢对不起,这个问题问得不好。