Django 从用户实例字段将默认值设置为UserProfile模型字段
我使用UserProfile模型来保存关于用户的其他信息,其中一个字段是subdomain变量,默认情况下应该设置为username。以下是UserProfile模型:Django 从用户实例字段将默认值设置为UserProfile模型字段,django,django-models,Django,Django Models,我使用UserProfile模型来保存关于用户的其他信息,其中一个字段是subdomain变量,默认情况下应该设置为username。以下是UserProfile模型: class UserProfile(models.Model): theme = models.ForeignKey(Theme, unique=True, null=True) user = models.ForeignKey(User, unique=True) subdomain = models.
class UserProfile(models.Model):
theme = models.ForeignKey(Theme, unique=True, null=True)
user = models.ForeignKey(User, unique=True)
subdomain = models.CharField(default=self.user.username, max_length=30)
我实现了Django信号特性,以便在用户创建时自动创建UserProfile模型实例。现在我需要将子域变量设置为username。如何执行此操作?由于您使用信号自动创建
用户配置文件
,因此可以显式地将用户
实例的用户名
设置为用户配置文件
子域。例如
def create_user_profile(sender, instance, **kwargs):
profile = UserProfile(user = instance, subdomain = instance.username, ...)
profile.save()
另一种方法是重写save()
方法,这样如果没有提供子域,您可以将其设置为user.username