从User模型中预先填充Django中的SlugField

时间:2015-05-28 10:38:29

标签: python django django-models django-admin

为了拥有用户配置文件,我希望使用存储在User对象中的用户名字段生成唯一的slug。我想在Admin界面和用户对象创建时强制执行此操作。

这是我想要在创建User对象时使用的,它无声地失败(没有生成slug)。

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    created = models.DateField(auto_now_add=True, auto_now=False)
    slug = models.SlugField(unique=True)

def __unicode__(self):
    return self.user.username

def save(self, *args, **kwargs):
    self.slug = slugify(self.user.username)
    super(UserProfile, self).save(*args, **kwargs)

这就是我打算在管理界面中预先填充的方式。这失败了。

class UserProfileInline(admin.StackedInline):
    model = UserProfile
    can_delete = False
    prepopulated_fields = {'slug':('model.user.username',)}

我已经注意到有成千上万的文章解释了如何做到这一点,但我还没有找到解释如何使用用户模型中的字段来完成此任务。

感谢任何帮助。

0 个答案:

没有答案