为了拥有用户配置文件,我希望使用存储在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',)}
我已经注意到有成千上万的文章解释了如何做到这一点,但我还没有找到解释如何使用用户模型中的字段来完成此任务。
感谢任何帮助。